mysql前缀索引及其选择「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。
索引的选择性:
是指不重复的索引值(也称基数)和数据表的记录总数(#T)的比值,范围从1/#T到1之间。索引的选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤更多的行。唯一索引的选择性是1,这是最好的索引选择性,性能也是最好的。
为了保证前缀索引有较高的选择性,同时又不能太长可以使用计算完整列的选择性,并使前缀的索引性接近于完整列的选择性,方法如下:
第一步:计算完整列的选择性:
表名:city_demo, city是城市名称字段
mysql>SELECT COUNT(DISTINCT `city`)/COUNT(*) FROM `city_demo`;
显示结果:
+---------------------------------+
| COUNT(DISTINCT `city`)/COUNT(*) | +-----------------+----------+-----