• 联合索引和单列索引


    1.  首先对于单列索引来说,它比较适合建在重读度低的列上。

    2.  联合索引又叫复合索引,它是对多个字段同时建立的索引(有顺序,ABC,ACB是完全不同的两种联合索引)。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 建立这样的索引相当于建立了索引a、ab、abc三个索引。可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。注意:索引列越多通过索引筛选出的数据越少。

    3.  覆盖(动词)索引:同样的有联合索引(a,b,c),如果有如下的sql: select a,b,c from table where a=xxx and b = xxx。那么MySQL可以直接通过遍历索引取得数据,而无需读表,这减少了很多的随机io操作。

    4.  使用时注意什么   

       1.单个索引需要注意的事项,组合索引全部通用。比如索引列不要参与计算啊、or的两侧要么都索引列,要么都不是索引列啊、模糊匹配的时候%不要在头部啦等等   

       2.最左匹配原则。(A,B,C) 这样3列,mysql会首先匹配A,然后再B,C. 如果用(B,C)这样的数据来检索的话,就会找不到A使得索引失效。如果使用(A,C)这样的数据来检索的话,就会先找到所有A的值然后匹配C,此时联合索引是失效的。

       3.把最常用的,筛选数据最多的字段放在左侧。

  • 相关阅读:
    实验五
    实验一
    实验四
    实验三
    实验8 SQLite数据库操作
    实验7 BindService模拟通信
    实验6 在应用程序中播放音频和视频
    实验5 数独游戏界面设计
    实验4 颜色、字符串资源的使用
    实验五 存储管理实验
  • 原文地址:https://www.cnblogs.com/jkzr/p/10697653.html
Copyright © 2020-2023  润新知