欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql 索引合并的使用

 更新時間:2021年08月26日 15:55:05   作者:camellia  
索引合并是mysql底層為我們提供的智能算法。本文就介紹了mysql 索引合并的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

索引合并是mysql底層為我們提供的智能算法。了解索引合并的算法,有助于我們更好的創(chuàng)建索引。

索引合并是通過多個range類型的掃描并且合并它們的結果集來檢索行的。僅合并來自單個表的索引掃描,而不是跨多個表的索引掃描。合并會產生底層掃描的三種形式:unions(合并)、intersections(交集)、unions-of-intersections(先取交集再合并)。

以下四個例子會產生索引合并:

SELECT * FROM tbl_name WHERE key1 = 10 OR key2 = 20;
SELECT * FROM tbl_name WHERE (key1 = 10 OR key2 = 20) AND non_key = 30;
SELECT * FROM t1, t2 WHERE (t1.key1 IN (1,2) OR t1.key2 LIKE 'value%') AND t2.key1 = t1.some_col;
SELECT * FROM t1, t2 WHERE t1.key1 = 1 AND (t2.key1 = t1.some_col OR t2.key2 = t1.some_col2);

索引合并有以下已知的局限性:

1、如果查詢語句包含一個帶有嚴重AND/OR嵌套的復雜的WHERE子句而MySQL沒有選擇最佳計劃,那么可以嘗試使用以下的標志符轉換:

(x AND y) OR z => (x OR z) AND (y OR z)
(x OR y) AND z => (x AND z) OR (y AND z)

2、索引合并不適用于全文索引。

在 EXPLAIN 語句輸出的信息中,索引合并在type列中表現(xiàn)為“index_merge”,在這種情況下,key列包含使用的索引列表。
索引合并訪問方法有幾種算法,表現(xiàn)在 EXPLAIN 語句輸出的Extra字段中:

Using intersect(...)
Using union(...)
Using sort_union(...)

下面將更詳細地描述這些算法。優(yōu)化器根據各種可用選項的成本估計,在不同的索引合并算法和其他訪問方法之間進行選擇。

Index Merge Intersection算法

Index Merge Intersection算法對所有使用的索引執(zhí)行同步掃描,并生成從合并的索引掃描接收到的行序列的交集。
這種算法適用于當WHERE子句被轉換成多個使用AND連接的不同索引key上的范圍條件,且條件是以下兩種之一:

一、這種形式的N部分表達式,索引正好包括N個字段(所有索引字段都被覆蓋),N>=1,N如果大于1就是復合索引:

key_part1 = const1 AND key_part2 = const2 ... AND key_partN = constN。

二、InnoDB表主鍵上的任何范圍條件。

例子:

SELECT * FROM innodb_table
WHERE primary_key < 10 AND key_col1 = 20;
SELECT * FROM tbl_name
WHERE key1_part1 = 1 AND key1_part2 = 2 AND key2 = 2;

Index Merge Union算法

該算法類似于Index Merge Intersection算法,適用于當WHERE子句被轉換成多個使用OR連接的不同索引key上的范圍條件,且條件是以下三種之一:

一、這種形式的N部分表達式,索引正好包括N個字段(所有索引字段都被覆蓋),N>=1,N如果大于1就是復合索引:

key_part1 = const1 AND key_part2 = const2 ... AND key_partN = constN。

二、InnoDB表主鍵上的任何范圍條件。
三、符合Index Merge Intersection算法的條件。

例子:

SELECT * FROM t1
WHERE key1 = 1 OR key2 = 2 OR key3 = 3;
SELECT * FROM innodb_table
WHERE (key1 = 1 AND key2 = 2)
OR (key3 = 'foo' AND key4 = 'bar') AND key5 = 5;

Index Merge Sort-Union算法

該算法適用于當WHERE子句被轉換成多個使用OR連接的不同索引key上的范圍條件,但是不符合 Index Merge Union算法的。Index Merge Sort-Union和Index Merge Union算法的區(qū)別在于,Index Merge Sort-Union必須首先獲取所有行的行id并在返回任何行之前對它們進行排序。

例子:

SELECT * FROM tbl_name
WHERE key_col1 < 10 OR key_col2 < 20;
SELECT * FROM tbl_name
WHERE (key_col1 > 10 OR key_col2 = 20) AND nonkey_col = 30;

到此這篇關于mysql 索引合并的使用的文章就介紹到這了,更多相關mysql 索引合并內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • Mysql之SQL Mode用法詳解

    Mysql之SQL Mode用法詳解

    這篇文章主要介紹了Mysql之SQL Mode用法,可以幫助用戶更好的理解MySQL的工作模式,需要的朋友可以參考下
    2014-07-07
  • mysql語法時采用了雙引號““的錯誤問題

    mysql語法時采用了雙引號““的錯誤問題

    錯誤原因:使用雙引號定義表名和列名導致MySQL報錯,應使用反引號,修改方案:將雙引號改為反引號,避免語法沖突,總結:在MySQL中,正確使用反引號引用標識符,確保SQL語句符合MySQL語法規(guī)則
    2024-10-10
  • navicat?連接Ubuntu虛擬機的mysql的操作方法

    navicat?連接Ubuntu虛擬機的mysql的操作方法

    這篇文章主要介紹了navicat?連接Ubuntu虛擬機的mysql的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 安裝mysql 8.0.17并配置遠程訪問的方法

    安裝mysql 8.0.17并配置遠程訪問的方法

    這篇文章主要介紹了安裝mysql 8.0.17并配置遠程訪問的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 淺談一下mysql數(shù)據庫底層原理

    淺談一下mysql數(shù)據庫底層原理

    這篇文章主要介紹了淺談一下mysql數(shù)據庫底層原理,介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • MySQL入門教程(七)之視圖

    MySQL入門教程(七)之視圖

    視圖是從一個或多個表中導出來的虛擬表。視圖就像一個窗口,通過這個窗口可以看到系統(tǒng)專門提供的數(shù)據。本文給大家介紹MySQL入門教程(七)之視圖,需要的朋友參考下
    2016-04-04
  • MySQL查詢排序與查詢聚合函數(shù)用法分析

    MySQL查詢排序與查詢聚合函數(shù)用法分析

    這篇文章主要介紹了MySQL查詢排序與查詢聚合函數(shù)用法,結合實例形式分析了MySQL查詢結果排序以及查詢聚合函數(shù)相關使用技巧,需要的朋友可以參考下
    2019-11-11
  • MySQL5.0存儲過程教程

    MySQL5.0存儲過程教程

    Introduction 簡介 MySQL 5.0 新特性教程是為需要了解5.0版本新特性的MySQL老用戶而寫的。簡單的來說是介紹了“存儲過程、觸發(fā)器、視圖、信息架構視圖”,在此感謝譯者陳朋奕的努力.
    2008-04-04
  • Mysql如何查詢字符串開頭的數(shù)據

    Mysql如何查詢字符串開頭的數(shù)據

    這篇文章主要介紹了Mysql如何查詢字符串開頭的數(shù)據問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • MySQL核心參數(shù)優(yōu)化文件my.ini實現(xiàn)

    MySQL核心參數(shù)優(yōu)化文件my.ini實現(xiàn)

    本文主要介紹了MySQL核心參數(shù)優(yōu)化文件my.ini實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01

最新評論