1、分页时统计页面总数不要使用mysql_num_rows,而是使用select count,二者效率相差百倍。可以只统计一次,用memcached等方式储存,避免多次对数据库的操作。
2、limit语句可以写成limit 20 offset 10000
3、关键字段建立索引。列重复内容过多的时候,索引并不会mysql引擎使用。一个表上的索引量最好不要超过六个,索引虽然提高了select的效率,但是同样会降低插入和更新的效率。
4、避免在where中做空值判断、非判断、模糊匹配,or查询可以改成union查询效率会极大提升。
例如select * from table where types=1 or types=2
可以改为select * from table where types=1 union select * from table where types=2;
5、in或not in查询可以改成between,或者比如一个跨表的查询可以这样
select * from table1 where nid in (select nid from table2 where……);
select a.* from table1 a inner join table2 b on a.nid= b.nid where …….;
like模糊匹配可以使用FULLTEXT索引替代改成全文检索。
6、在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。
7、exists 和 in的效率比较。参考资料http://www.cnblogs.com/meibao/p/4973043.html
8、纯数字使用数字型字段,varchar/nvarchar > char/nchar,控制字段大小,尽量避免允许为空
9、未完待续……
售后保障
承诺任何问题1小时内解决数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款