MySQL基础(六)性能

1、使用Explain语句让MySQL解释它将如何执行一条select语句。(http://blog.guyzyl.com/archives-20101030-77.html?replytocom=77)
2、在导入数据时,应关闭自动提交。
3、必须索引数据库,以改善数据检索的性能。索引会损害插入、删除、更新的性能,可以在批量导入的时候先删除索引,完成后再重新建。
4、如果select语句中有OR,可以尝试用多条select,然后使用union连接。
5、like很慢,最好使用FULLTEXT。
6、小结果集驱动大结果集。我现在的理解是在多表查询中如果有某个表的限制条件应放到子查询中,例如:select atid,a.sortid,sortname,tpl_name,tpl_reason from template a,(select sortid,sortname from sort where flag=1 order by sortid) b where a.sortid=b.sortid;
7、索引,语法:http://www.cnblogs.com/tianhuilove/archive/2011/09/05/2167795.html
提高查询效率,另外如果语句中包含排序,并且排序的字段与查询使用的索引一样的话,就可不用排序了,因为查出的结果就已经按照索引排序了,对于有分组查询的SQL,在分组之前需求对结果进行排序,如果分组字段和索引字段相同,也会省去排序的操作。(排序和分组主要会消耗cpu和内存)。
哪些字段应该创建索引:
    较频繁的作为查询条件的字段。(唯一性太差的字段不适合做索引,即使查询效率比较频繁)
    更新频繁的字段不适合创建索引。
使用不等于(!=或<>)的时候,mysql不支持索引。
使用LIKE的时候,如果条件以通配符开始,mysql不支持索引。
   

猜你喜欢

转载自lsg0220.iteye.com/blog/1633350