最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql索引最左原則實(shí)例代碼

 更新時(shí)間:2019年07月28日 10:36:46   作者:米蘭小鐵匠  
這篇文章主要給大家介紹了關(guān)于mysql索引最左原則的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

最近在看MySQL索引的知識(shí),看到組合索引的時(shí)候,有一個(gè)最左側(cè)原則,通過(guò)查找相關(guān)資料深入學(xué)習(xí)了下,下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧

建表

CREATE TABLE `user` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(10) DEFAULT NULL,
 `sex` tinyint(1) DEFAULT NULL,
 `age` tinyint(2) DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `Index_user` (`name`,`age`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;

測(cè)試sql

第一種

mysql> explain SELECT * FROM `user` where name="tom" \G
*************************** 1. row ***************************
   id: 1
 select_type: SIMPLE
  table: user
 partitions: NULL
   type: ref
possible_keys: Index_user
   key: Index_user
  key_len: 43
   ref: const
   rows: 1
  filtered: 100.00
  Extra: NULL

第二種

mysql> explain SELECT * FROM `user` where age=18 and name="tom" \G
*************************** 1. row ***************************
   id: 1
 select_type: SIMPLE
  table: user
 partitions: NULL
   type: ref
possible_keys: Index_user
   key: Index_user
  key_len: 45
   ref: const,const
   rows: 1
  filtered: 100.00
  Extra: NULL

第三種

mysql> explain SELECT * FROM `user` where age=18 \G
*************************** 1. row ***************************
   id: 1
 select_type: SIMPLE
  table: user
 partitions: NULL
   type: ALL
possible_keys: NULL
   key: NULL
  key_len: NULL
   ref: NULL
   rows: 3
  filtered: 33.33
  Extra: Using where
1 row in set, 1 warning (0.00 sec)

第四種

mysql> explain SELECT * FROM `user` where name="tom" and age=18 \G
*************************** 1. row ***************************
   id: 1
 select_type: SIMPLE
  table: user
 partitions: NULL
   type: ref
possible_keys: Index_user
   key: Index_user
  key_len: 45
   ref: const,const
   rows: 1
  filtered: 100.00
  Extra: NULL
1 row in set, 1 warning (0.00 sec)

總結(jié)

由此可見(jiàn),只有sql中where包含聯(lián)合索引的首個(gè)字段的查詢才能命中索引,這個(gè)叫索引的最左匹配特性。 聯(lián)合索引的使用在寫where條件的順序無(wú)關(guān),mysql查詢分析會(huì)進(jìn)行優(yōu)化而使用索引。但是減輕查詢分析器的壓力,最好和索引的從左到右的順序一致。

b+樹(shù)的數(shù)據(jù)項(xiàng)是復(fù)合的數(shù)據(jù)結(jié)構(gòu),比如(name,age,sex)的時(shí)候,b+樹(shù)是按照從左到右的順序來(lái)建立搜索樹(shù)的,比如當(dāng)(張三,20,F)這樣的數(shù)據(jù)來(lái)檢索的時(shí)候,b+樹(shù)會(huì)優(yōu)先比較name來(lái)確定下一步的所搜方向,如果name相同再依次比較age和sex,最后得到檢索的數(shù)據(jù);但當(dāng)(20,F)這樣的沒(méi)有name的數(shù)據(jù)來(lái)的時(shí)候,b+樹(shù)就不知道第一步該查哪個(gè)節(jié)點(diǎn),因?yàn)榻⑺阉鳂?shù)的時(shí)候name就是第一個(gè)比較因子,必須要先根據(jù)name來(lái)搜索才能知道下一步去哪里查詢。

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • MySql一條查詢語(yǔ)句的執(zhí)行流程究竟是怎么樣的

    MySql一條查詢語(yǔ)句的執(zhí)行流程究竟是怎么樣的

    一直是想知道一條SQL語(yǔ)句是怎么被執(zhí)行的,它執(zhí)行的順序是怎樣的,然后查看總結(jié)各方資料,就有了下面這一篇文章了,下面這篇文章主要給大家介紹了關(guān)于MySql一條查詢語(yǔ)句的執(zhí)行流程究竟是怎么樣的,需要的朋友可以參考下
    2024-06-06
  • Mysql按特定符號(hào)分割成多行和多列的示例

    Mysql按特定符號(hào)分割成多行和多列的示例

    本文主要介紹了Mysql 按特定符號(hào)分割成多行和多列,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 輕松上手MYSQL之SQL優(yōu)化之Explain詳解

    輕松上手MYSQL之SQL優(yōu)化之Explain詳解

    Explain是SQL分析工具中非常重要的一個(gè)功能,它可以模擬優(yōu)化器執(zhí)行查詢語(yǔ)句,幫助我們理解查詢是如何執(zhí)行的,這篇文章主要給大家介紹了關(guān)于輕松上手MYSQL之SQL優(yōu)化之Explain詳解的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • phplib中的一些基本語(yǔ)法和函數(shù)

    phplib中的一些基本語(yǔ)法和函數(shù)

    phplib中常用的方法有set_file,set_block,set_var,parse,ppasre,p,get等。
    2010-04-04
  • Mysql 行級(jí)鎖的使用及死鎖的預(yù)防方案

    Mysql 行級(jí)鎖的使用及死鎖的預(yù)防方案

    mysql的InnoDB,支持事務(wù)和行級(jí)鎖,可以使用行鎖來(lái)處理用戶提現(xiàn)等業(yè)務(wù)。使用mysql鎖的時(shí)候有時(shí)候會(huì)出現(xiàn)死鎖,要做好死鎖的預(yù)防。這篇文章通過(guò)實(shí)例應(yīng)用給大家講解
    2016-12-12
  • MySQL中無(wú)GROUP BY情況下直接使用HAVING語(yǔ)句的問(wèn)題探究

    MySQL中無(wú)GROUP BY情況下直接使用HAVING語(yǔ)句的問(wèn)題探究

    這篇文章主要介紹了MySQL中無(wú)GROUP BY情況下直接使用HAVING語(yǔ)句的問(wèn)題探究,同時(shí)探究了該情況下MAX與MIN功能的使用情況,需要的朋友可以參考下
    2015-05-05
  • 詳解mysql 組合查詢

    詳解mysql 組合查詢

    這篇文章主要介紹了詳解mysql 組合查詢的的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-12-12
  • Mysql查看死鎖與解除死鎖的深入講解

    Mysql查看死鎖與解除死鎖的深入講解

    這篇文章主要給大家介紹了關(guān)于Mysql查看死鎖與解除死鎖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • MySQL中實(shí)現(xiàn)行列轉(zhuǎn)換的操作示例

    MySQL中實(shí)現(xiàn)行列轉(zhuǎn)換的操作示例

    在 MySQL 中進(jìn)行行列轉(zhuǎn)換(即,將某些列轉(zhuǎn)換為行或?qū)⒛承┬修D(zhuǎn)換為列)通常涉及使用條件邏輯和聚合函數(shù),本文給大家介紹了MySQL中實(shí)現(xiàn)行列轉(zhuǎn)換的操作示例,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-06-06
  • 對(duì)MySQL子查詢的簡(jiǎn)單改寫優(yōu)化

    對(duì)MySQL子查詢的簡(jiǎn)單改寫優(yōu)化

    這篇文章主要介紹了對(duì)MySQL子查詢的簡(jiǎn)單改寫優(yōu)化,文中的小修改主要將子查詢改為關(guān)聯(lián)從而降低查詢時(shí)關(guān)聯(lián)的次數(shù),需要的朋友可以參考下
    2015-05-05

最新評(píng)論

涞水县| 浦北县| 滦平县| 府谷县| 合江县| 盐池县| 资溪县| 安新县| 乌拉特后旗| 区。| 修水县| 霍邱县| 镇安县| 台安县| 嵊州市| 丰都县| 博罗县| 岚皋县| 正宁县| 平定县| 化德县| 五峰| 和顺县| 永吉县| 承德市| 五台县| 斗六市| 禄劝| 南华县| 陕西省| 商南县| 浏阳市| 余干县| 石门县| 吴江市| 葵青区| 加查县| 新乡市| 青龙| 吉首市| 塘沽区|