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

正確理解Mysql中的列索引和多列索引

 更新時間:2013年06月29日 15:48:58   投稿:jingxian  
本篇文章是對Mysql中的列索引和多列索引進行了詳細的分析介紹,需要的朋友參考下

Mysql數(shù)據(jù)庫提供兩種類型的索引,如果沒正確設(shè)置,索引的利用效率會大打折扣卻完全不知問題出在這。

CREATE TABLE test (
  id     INT NOT NULL,
  last_name CHAR(30) NOT NULL,
  first_name CHAR(30) NOT NULL,
  PRIMARY KEY (id),
  INDEX name (last_name,first_name)
);

以上創(chuàng)建的其實是一個多列索引,創(chuàng)建列索引的代碼如下:

CREATE TABLE test (
  id     INT NOT NULL,
  last_name CHAR(30) NOT NULL,
  first_name CHAR(30) NOT NULL,
  PRIMARY KEY (id),
  INDEX name (last_name),
   INDEX_2 name (first_name)
);

一個多列索引可以認為是包含通過合并(concatenate)索引列值創(chuàng)建的值的一個排序數(shù)組。 當查詢語句的條件中包含last_name 和 first_name時,例如:

SELECT * FROM test WHERE last_name='Kun' AND first_name='Li';

sql會先過濾出last_name符合條件的記錄,在其基礎(chǔ)上在過濾first_name符合條件的記錄。那如果我們分別在last_name和first_name上創(chuàng)建兩個列索引,mysql的處理方式就不一樣了,它會選擇一個最嚴格的索引來進行檢索,可以理解為檢索能力最強的那個索引來檢索,另外一個利用不上了,這樣效果就不如多列索引了。
 
但是多列索引的利用也是需要條件的,以下形式的查詢語句能夠利用上多列索引:

SELECT * FROM test WHERE last_name='Widenius';
SELECT * FROM test WHERE last_name='Widenius' AND first_name='Michael';
SELECT * FROM test WHERE last_name='Widenius' AND (first_name='Michael' OR first_name='Monty');
SELECT * FROM test WHERE last_name='Widenius' AND first_name >='M' AND first_name < 'N';

以下形式的查詢語句利用不上多列索引:

SELECT * FROM test WHERE first_name='Michael';
SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael';

多列建索引比對每個列分別建索引更有優(yōu)勢,因為索引建立得越多就越占磁盤空間,在更新數(shù)據(jù)的時候速度會更慢。
另外建立多列索引時,順序也是需要注意的,應(yīng)該將嚴格的索引放在前面,這樣篩選的力度會更大,效率更高。

相關(guān)文章

  • 十個實用且簡單的MySQL函數(shù)

    十個實用且簡單的MySQL函數(shù)

    本文給大家分享了十個實用且簡單的MySQL函數(shù),需要的朋友可以參考下
    2018-01-01
  • 詳解MySQL8.0 密碼過期策略

    詳解MySQL8.0 密碼過期策略

    這篇文章主要介紹了MySQL8.0 密碼過期策略的相關(guān)資料,幫助大家更好的理解和使用MySQL8.0的新功能,感興趣的朋友可以了解下
    2020-11-11
  • 數(shù)據(jù)庫中的sql完整性約束語句解析

    數(shù)據(jù)庫中的sql完整性約束語句解析

    這篇文章主要介紹了數(shù)據(jù)庫中的sql完整性約束語句解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • windows下安裝MySQL詳細教程

    windows下安裝MySQL詳細教程

    這篇文章主要介紹了windows下安裝MySQL教程的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • MySQL8.x登陸root用戶突然提示mysql_native_password的實現(xiàn)

    MySQL8.x登陸root用戶突然提示mysql_native_password的實現(xiàn)

    本文主要介紹了MySQL 8.x登陸root用戶突然提示mysql_native_password,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • 超簡單的qps統(tǒng)計方法(推薦)

    超簡單的qps統(tǒng)計方法(推薦)

    下面小編就為大家?guī)硪黄唵蔚膓ps統(tǒng)計方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • linux下mysql數(shù)據(jù)庫單向同步配置方法分享

    linux下mysql數(shù)據(jù)庫單向同步配置方法分享

    mysql數(shù)據(jù)庫單向同步又叫做主從復(fù)制,是通過二進制日志文件完成的,注意:mysql 數(shù)據(jù)庫的版本,兩個數(shù)據(jù)庫版本要相同
    2012-06-06
  • mysql日志滾動

    mysql日志滾動

    日志滾動解決日志文件過大問題,比如我開啟了general_log,這個日志呢是記錄mysql服務(wù)器上面所運行的所有sql語句;比如我開啟了mysql的慢查詢
    2014-01-01
  • 淺談MySQL的B樹索引與索引優(yōu)化小結(jié)

    淺談MySQL的B樹索引與索引優(yōu)化小結(jié)

    這篇文章主要介紹了淺談MySQL的B樹索引與索引優(yōu)化小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 一文掌握MySQL表的創(chuàng)建和約束

    一文掌握MySQL表的創(chuàng)建和約束

    這篇文章主要和大家分享一下數(shù)據(jù)庫的創(chuàng)建和銷毀語法以及詳細講解MySQL表的創(chuàng)建代碼和約束的使用,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-07-07

最新評論

砀山县| 甘德县| 泸西县| 河北区| 江达县| 榆社县| 合川市| 温州市| 洛扎县| 平罗县| 榆树市| 东至县| 郯城县| 临安市| 遂昌县| 竹溪县| 祁阳县| 唐山市| 吉木萨尔县| 习水县| 富顺县| 永州市| 黑水县| 五莲县| 家居| 大厂| 凤冈县| 桐庐县| 商洛市| 安阳市| 正蓝旗| 凭祥市| 调兵山市| 满洲里市| 安顺市| 赤城县| 长泰县| 靖边县| 包头市| 启东市| 德兴市|