1.SQL语句执行速度慢
一个SQL语句执行的速度很慢, 分两种情况讨论:
大多数情况下很正常, 偶尔很慢, 则有如下原因:
- 数据库在刷新脏页
- 执行的时候, 遇到锁, 如表锁, 行锁
一直执行很慢, 则有如下原因
- 没有用上索引: 例如该字段没有索引, 由于对字段进行运算, 函数操作导致无法使用索引
- 数据库选错了索引
2.SQL语句的优化
设置合适的字段属性
字段的长度越小, 占用的内存越小, 性能就越好; 例如,中国的手机号码为11位, vachar的长度设置为11位即可
使用join语法
join语法分为内连接, 左(外)连接, 右(外)连接
尽量少使用select *
select *会进行全表查询, 消耗的性能较大
在查找唯一一条数据的时候, 使用limit 1, 在查找到数据的时候会终止查找
使用limit分页
尽量少使用排序order by, order by DESC, order by ASC
避免进行类型转换
使用索引
优点: 加快索引速度
缺点: 创建索引和维护索引需要耗费时间和精力
索引需要占用空间
进行数据的增删改查时需要动态维护索引