应该创立索引的场景
- 主键应该创立主键索引。
- 频繁作为查问条件的字段应该创立索引。
- 查问中须要与其余表进行关联的字段应该创立索引。
- 须要排序的字段应该创立索引。
- 须要统计或分组的字段应该创立索引。
- 优先思考创立复合索引。
不适宜创立索引的场景
- 频繁更新的字段不适宜创立索引。
- 查问条件中用不到的字段不适宜创立索引。
不应创立索引的场景
- 数据记录较少的表。
- 常常须要增删改操作的字段。
- 数据记录反复较多且散布均匀的字段(如性别、状态等)。
索引的选择性是指索引列中不同值的数目与表中记录总数的比。
索引的选择性越靠近于 1,创立索引的价值就越高。反之就越低。
MySQL 常见的性能瓶颈
- CPU:通常产生在数据载入内存或从磁盘上读取数据时。
- IO:通常产生在载入数据远大于内存容量时。
- 服务器硬件:通过 top,free,iostat,vmstat 等命令查看零碎的性能情况。