怎么在mysql中实现一个联合索引

  介绍

这篇文章将为大家详细讲解有关怎么在mysql中实现一个联合索引,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

联合索引

联合索引的定义为(mysql):

ALTER  TABLE “table_name”, ADD  INDEX  (‘col1’,‘col2’,‘col3’),

联合索引的优点

若多个一条sql,需要多个用到两个条件

SELECT  *,得到“user_info”, WHERE 用户名=& # 39;xx # 39;,密码=& # 39;xxxxxx # 39;;

当索引在检索<代码>密码>

符合索引的索引体积比单独索引的体积要小,而且只是一个索引树,相比单独列的索引要更加的节省时间复杂度和空间复杂度

联合索引命中的本质(最左匹配的理解)

定义

当创建(<代码> col1 ,<代码> col2 ,<代码> col3> 上校)单列索引,(<代码> clo1 ,<代码>二氧化氯> col1 ,<代码> col2 ,<代码> col3> col1 和<代码> col1 ,<代码> col2 和<代码> col1 ,<代码> col2 ,<代码> col3 三种组合,当然,<代码> col1 ,<代码> col3> col1> col3>

图解

怎么在mysql中实现一个联合索引

通俗理解

联合索引相当于一个按照<代码>姓氏,名字> =和<代码> 直接的字段都可以乱序,mysql的查询优化器可以优化成索引识别的形式)

——,只命中,col1, col2   SELECT  *,得到“table_name”, WHERE “col1”=& # 39; xx # 39;; ,,命中col1, col2.col1, col2的顺序可以颠倒   SELECT  *,得到“table_name”, WHERE “clo1”=& # 39; xx # 39;,二氧化氯的=& # 39;xxx # 39;,,   SELECT  *,得到“table_name”, WHERE “二氧化氯”=& # 39;xxx # 39;,, ' clo1 '=& # 39; xx # 39;; ,,命中col1, col2, col3,同理,三个列的顺可以颠倒   SELECT  *,得到“table_name”, WHERE “col1”=& # 39; x # 39;,“col2”=& # 39; xx # 39;,“col3”=& # 39; xxx # 39;;   SELECT  *,得到“table_name”, WHERE “col1”=& # 39; x # 39;,“col3”=& # 39; xx # 39;,“col2”=& # 39; xxx # 39;;   SELECT  *,得到“table_name”, WHERE “col2”=& # 39; x # 39;,“col3”=& # 39; xx # 39;,“col1”=& # 39; xxx # 39;;

关于怎么在mysql中实现一个联合索引就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

怎么在mysql中实现一个联合索引