Table of Contents:

服务器配置

数据库引擎
外键约束或者事务处理对于数据完整性是非常重要的,但MyISAM都不支持这些。另外,当有一条记 录在插入或者更新时,整个数据表都被锁定了,当使用量增加的时候这会产生非常差的运行效率。

u MyISAM 和 InnoDB的选择
1. 如果你的网站以 读和写为主,同时对事务性要求不高,建议使用MyISAM
2. 如果你的网站对事务性高,比如(转账,付款…)这个表建议使用InnoDB

索引

在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。

  1. 在经常查询的字段上加索引, 不经常查询的就不加索引
  2. 唯一性差的字段不要加索引.

创建索引是以insert开销为代价的

  1. 如果是多列索引,只有使用到左边的字段,才会使用索引
  2. like 语句 ‘%aa’ 是不会用索引
  3. or 要小心使用.是不会用索引

sql语句优化

避免扫全表的操作
避免困难的正则表达式
MATCHES和LIKE关键字支持通配符匹配,技术上叫正规表达式。但这种匹配特别耗费时间。
例如:SELECT * FROM customer WHERE zipcode LIKE “98_ _ _”

怎么定位慢查询
配置多少秒为慢查询,日志记录在哪里

show variables like 'long_query_time';