mysql 踩坑记录
数字、字符串
如果mysql 里面 有数字字符串 的字段(并且该字段是索引),客户端不要直接传数字,一定要加引号
这个也就是为什么orm库喜欢在格式化时候,默认加上`
索引
索引的问题非常多,通常出现的慢查询都是由于查询语句命中索引不正确导致的
甚至表中的数据量都会影响mysql命中索引的规则
组合索引
组合索引是最左建立多个索引
in
会命中索引,not in
会导致索引失效
排序最好主要范围语句会导致组合索引后续的索引失效(主要是 > < 等)
索引最终还是会回归到主键上,所以如果没有分区的情况下,是按照主键顺序返回的(InnoDB),这样基本也是利用来排序的
count
当然count要命中索引,这个不用说,剩余的就是
count(1) 不需要读太多数据,count(*)则不行
而count(column) 是需要筛选出不为 NULL 的字段
想到其他再更新