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

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

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

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)
);

一個多列索引可以認(rèn)為是包含通過合并(concatenate)索引列值創(chuàng)建的值的一個排序數(shù)組。 當(dāng)查詢語句的條件中包含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的處理方式就不一樣了,它會選擇一個最嚴(yán)格的索引來進(jìn)行檢索,可以理解為檢索能力最強的那個索引來檢索,另外一個利用不上了,這樣效果就不如多列索引了。
 
但是多列索引的利用也是需要條件的,以下形式的查詢語句能夠利用上多列索引:

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)該將嚴(yán)格的索引放在前面,這樣篩選的力度會更大,效率更高。

相關(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完整性約束語句解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • windows下安裝MySQL詳細(xì)教程

    windows下安裝MySQL詳細(xì)教程

    這篇文章主要介紹了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,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    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ù)制,是通過二進(jìn)制日志文件完成的,注意: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)建和銷毀語法以及詳細(xì)講解MySQL表的創(chuàng)建代碼和約束的使用,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07

最新評論

梅河口市| 孙吴县| 河东区| 湛江市| 沂南县| 南城县| 大关县| 大名县| 崇义县| 漳州市| 敖汉旗| 博白县| 江油市| 株洲县| 武功县| 加查县| 前郭尔| 广宗县| 保康县| 岱山县| 呼伦贝尔市| 平和县| 安图县| 金沙县| 许昌市| 开阳县| 南澳县| 泽库县| 凤山市| 汨罗市| 工布江达县| 南陵县| 西和县| 额敏县| 阿荣旗| 新巴尔虎右旗| 隆化县| 穆棱市| 东阳市| 安义县| 洛浦县|