1、数据库字段宽度尽量选小,尽量设计为not null。
2、使用join代替子查询,join尽量用小表连大表。
3、建立索引,最好不超过6个,否则insert 和 update 会影响性能。
1、不要在存在大量重复值的列上建索引。
2、尽量不要在where 中对字段进行null判断,引擎会放弃使用索引而进行全表扫描。
3、避免查询时对有索引的字段进行操作,如 where unm + 1 = 2。
4、查询语句的优化
1、最好在相同类型的字段间进行比较。
2、在有索引的字段上尽量不使用函数。
3、尽量避免使用 != 和 <>。
4、尽量避免使用or连接,如一个字段有索引一个字段没有,会导致放弃使用索引。
5、尽量少使用in和not in,可使用between或者exists。
explain和desc
主要使用:
type:
好到差
NULL>system>const>eq_ref>ref>range>index>All
最后到达ref,否则需要优化sql。
possible_keys:mysql试用哪个索引进行查询。
key:查询用到的索引。