mysql 踩坑记录

数字、字符串

如果mysql 里面 有数字字符串 的字段(并且该字段是索引),客户端不要直接传数字,一定要加引号
这个也就是为什么orm库喜欢在格式化时候,默认加上`

索引

索引的问题非常多,通常出现的慢查询都是由于查询语句命中索引不正确导致的
甚至表中的数据量都会影响mysql命中索引的规则

组合索引

组合索引是最左建立多个索引
in会命中索引,not in 会导致索引失效
排序最好主要范围语句会导致组合索引后续的索引失效(主要是 > < 等)
索引最终还是会回归到主键上,所以如果没有分区的情况下,是按照主键顺序返回的(InnoDB),这样基本也是利用来排序的

count

当然count要命中索引,这个不用说,剩余的就是
count(1) 不需要读太多数据,count(*)则不行
而count(column) 是需要筛选出不为 NULL 的字段

想到其他再更新