MySQL 数据库优化的几种方式
2013-09-11 19:42
459 查看
优化大致可以分为以下方面,按照执行难易程度和对当前项目影响排序:
1. MySQL参数优化:可以通过
2. SQL查询优化和索引优化:你可以打开慢日志记录,将需要消耗太多时间的查询记录下来,然后分析相应的SQL语句是否写的不合理,不合理就改了;再到数据库中查表结构,看是否索引设置不合理(一般where语句中的常用字段和排序字段应该加上合适的索引);
3. 增加缓存层:可考虑在MySQL与应用层中间加一个缓存层,如APC、Memcached、Redis等等,将经常使用而更新较少的数据放到缓存层中,可以很好的减轻数据库压力;
4. 优化表结构:首先这个代价稍大,可能要重新灌数据之类的,代码修改可能也会比较多,看之前的封装性好不好了。主要是根据业务需要,看是否之前的表结构有不合理的地方,比如你使用了很多但是又无法排除的join查询;
5. 分库、分表、主从分离:分库是把数据库从1个逻辑库拆分到多个逻辑库,或从1个服务器拆分到多个服务器,分表是将一个表拆分为多个表,甚至是多个物理服务器的不同表;主从分离是将读、写完全分离到不同的数据库服务器;这个方案跟4一样,也是代价比较大,但是可持续性很好,项目到达一定的数量级,必须走这一步;
6. 自己定制MySQL:开源的,可以根据自己特殊业务需要定制,太高端了点点,总之有这种可能,没搞过..
1. MySQL参数优化:可以通过
show variables;命令和
show status;命令组合来综合分析,可调整的项目根据使用的存储引擎和项目瓶颈具体情况千差万别,需要具体问题具体分析,如果想从这方面入手,建议把问题提得更具体一点;
2. SQL查询优化和索引优化:你可以打开慢日志记录,将需要消耗太多时间的查询记录下来,然后分析相应的SQL语句是否写的不合理,不合理就改了;再到数据库中查表结构,看是否索引设置不合理(一般where语句中的常用字段和排序字段应该加上合适的索引);
3. 增加缓存层:可考虑在MySQL与应用层中间加一个缓存层,如APC、Memcached、Redis等等,将经常使用而更新较少的数据放到缓存层中,可以很好的减轻数据库压力;
4. 优化表结构:首先这个代价稍大,可能要重新灌数据之类的,代码修改可能也会比较多,看之前的封装性好不好了。主要是根据业务需要,看是否之前的表结构有不合理的地方,比如你使用了很多但是又无法排除的join查询;
5. 分库、分表、主从分离:分库是把数据库从1个逻辑库拆分到多个逻辑库,或从1个服务器拆分到多个服务器,分表是将一个表拆分为多个表,甚至是多个物理服务器的不同表;主从分离是将读、写完全分离到不同的数据库服务器;这个方案跟4一样,也是代价比较大,但是可持续性很好,项目到达一定的数量级,必须走这一步;
6. 自己定制MySQL:开源的,可以根据自己特殊业务需要定制,太高端了点点,总之有这种可能,没搞过..
相关文章推荐
- Yii框架操作数据库的几种方式与mysql_escape_string
- Yii框架操作数据库的几种方式与mysql_escape_string
- 数据库优化之mysql系统的优化方式
- 数据库优化之mysql系统的优化方式
- mysql 数据库几种修改密码的方式以及忘记密码处理办法
- 数据库连接的几种方式(你的脑海里是不是只有mysql_connect)
- 数据库优化查询的几种方式
- MySQL添加数据库的唯一索引的几种方式~
- mysql 数据库表分区 方式以及优化查询查看方式介绍
- mysql sql 百万级数据库优化方案
- 自建MySQL5.6数据库查询优化
- MySQL高可用数据库内核深度优化的四重定制
- 数据库优化 SQLServer mysql Oracle
- 高并发数据库之MySql性能优化实战总结
- Oracle中快速导入导出数据库的几种方式
- PHP使用数据库永久连接方式操作MySQL的是与非
- java与数据库交互的几种常见方式汇总
- 101个MySQL开源数据库调试和优化技巧
- mysql sql 百万级数据库优化方案
- 数据库优化之MySQL优化(一)