一、简介
通过合理安排资源,调整系统参数使MySQL运行更快、更节省资源。
二、优化查询
1.使用索引查询
MySQL中提高性能的一个最有效方式就是对数据表设计合理的索引。但并不是使用带索引的字段查询时,索引都会起作用。
(1) 使用like的查询语句中,如果匹配字符串的第一个字符为“%”,索引不会起作用
(2) 对于多列索引,只有查询条件中使用了第一个字段时,索引才会被使用
(3) 关键字or前后两个条件都是索引时,索引才有效
2.优化子查询
分析:MySQL需要为内层查询语句的查询结果建立一个临时表,然后外层查询语句从临时表中查询记录。因此子查询的速度会受到一定影响。如果数据量较大,这种影响就会随之增大。
解决方法:用join来代替子查询,连接查询不需要建立临时表,如果使用了索引,性能会更好。
三、优化数据库结构
1.对于字段较多的表,如果有些字段的使用频率很低,可以将这些字段分离出来形成新表。
2.通过建立中间表,把经常需要联合查询的数据插入到中间表中,然后将原来的联合查询改为对中间表的查询。
3.设计数据库表时应尽量遵守范式理论的规约,尽可能减少冗余字段。但是合理的加入冗余字段可以提高查询速度
四、优化MySQL服务器
1.优化服务器硬件。配置较大的内存和高速磁盘。
2.优化MySQL参数。修改my.cnf或my.ini文件的配置参数。
key_buffer_size:表示索引缓冲区的大小。索引缓冲区所有线程共享。增加缓冲区可以得到更好处理的索引。但是如果这个值过 大,会导致操作系统频繁换页,反倒降低性能。
sort_buffer_size:表示排序缓存区的大小。这个值越大,进行排序的速度越快。
max_connections:表示数据库的最大连接数。连接会浪费内存资源,过多连接可能会造成MySQL服务器僵死。
thread_cache_size:表示可以复用的线程的数量。如果有很多新的线程,为了提高性能可以增大该参数值。
除上述外,还有许多配置参数,合理配置这些参数可以提高服务器的性能。