现在的位置: 首页 > 综合 > 正文

优化Mysql

2013年04月15日 ⁄ 综合 ⁄ 共 843字 ⁄ 字号 评论关闭

优化Mysql

Mysql在大负载的时候,如何优化,更适合自己。看了车东的MySQL服务维护笔记,有点收获,简单总结如下。

程序端:

1. 尽量在程序总减少查询Mysql的次数,并且查询以后记得关闭链接,但是建议使用常连接,这样能够减少建立连接的开销。当然,如果能够

生成静态页是最好了。
2. 尽量不使用关联查询,最好一个操作只针对一个表,一次关联查询就是一次笛卡儿乘积,极度的耗费资源。如果需要查询多个表,尽量使用

多个程序来完成,让数据库的负担由程序分担一些。如果能够用left join解决的,就不要用inner join
3. 搜索的时候尽量少用like而改用全文搜索来提高效率
4. 进行统计这种实时性不是那么强的操作的时候最好能够生成静态的,定时进行统计,如果每次访问者访问的都是都对数据库进行统计查询将

非常耗费资源
5. 程序中如果能够把很多页面,特别是访问量大的页面生成静态,这是最好的

服务器端:

1. 如果Mysql的CPU占用率超过10%,就应该考虑优化了
2 安装的时候如果不使用innoDB,记得关闭:./configure --prefix=/home/mysql --without-innodb,因为它的速度比MyISAM的速度慢很多。
3. 如果有多个服务连接同一台Mysql服务器,相应单个MySQL服务的CPU占用仍然在10%以上, 就应该考虑把服务拆分到多端口来运行,这样还

能够增大Mysql的连接数
4. 设计数据库结构一定要合理,最常被访问的10%的数据放在一个小表里,90%的历史数据放在一个归档表里。将所有的定长字段(char, int

等)放在一个表里,所有的变长字段(varchar,text,blob等)放在另外一个表里,2个表之间通过主键关联,这样,定长字段表可以得到很大

的优化。
5. 给关键字段建立索引,建立索引和不建立索引差别真的很大,特别是大批量查询的时候

参考文章:

MySQL服务维护笔记
Java的全文索引引擎lucene的介绍

author: heiyeluren    05/09/07

抱歉!评论已关闭.