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

mysql索引原理與用法實(shí)例分析

 更新時(shí)間:2020年04月16日 11:09:41   作者:隨風(fēng)行云  
這篇文章主要介紹了mysql索引原理與用法,結(jié)合實(shí)例形式分析了mysql索引的基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了mysql索引原理與用法。分享給大家供大家參考,具體如下:

本文內(nèi)容:

  • 什么是索引
  • 創(chuàng)建索引
    • 普通索引
    • 唯一索引
    • 全文索引
    • 單列索引
    • 多列索引
  • 查看索引
  • 刪除索引

首發(fā)日期:2018-04-14


什么是索引:

  • 索引可以幫助快速查找數(shù)據(jù)
  • 基本上索引都要求唯一(有些不是),所以某種程度上也約束了數(shù)據(jù)的唯一性。
  • 索引創(chuàng)建在數(shù)據(jù)表對(duì)象上,由一個(gè)或多個(gè)字段組成,這若干個(gè)字段組成“鍵”存儲(chǔ)到數(shù)據(jù)結(jié)構(gòu)中(B樹(shù)或者哈希表)?!究梢愿鶕?jù)數(shù)據(jù)結(jié)構(gòu)分類(lèi)成B樹(shù)索引(innodb\myisam引擎),哈希索引(memory引擎)】
  • 由于索引是加快數(shù)據(jù)查找的,所以一般都使用在經(jīng)常需要用來(lái)查找的字段上(比如where中常用字段)
  • mysql支持的索引類(lèi)型有:普通索引、唯一索引、全文索引、單列索引、多列索引、空間索引。

補(bǔ)充:

  • 主鍵與索引的區(qū)別:主鍵也是一種索引,主鍵也是一種唯一索引,但索引的作用主要是提高查找速度,而主鍵作用主要是標(biāo)識(shí)記錄唯一性(當(dāng)然也便于查找)。

創(chuàng)建索引:

普通索引:index

  • 普通索引就是沒(méi)有“唯一”,“不為空”要求的索引。
  • 語(yǔ)法:
    • create table 表名(字段 數(shù)據(jù)類(lèi)型,字段 數(shù)據(jù)類(lèi)型,…index|key [索引名] (字段  [索引的長(zhǎng)度] [asc|desc]));
      • index|key代表可以使用index關(guān)鍵字或key關(guān)鍵字
      • 索引名是可選的,不填時(shí)索引名為字段名
      • 字段是加索引的字段,字段可以有多個(gè)(多列索引)。
      • 索引的長(zhǎng)度,可選的(有些引擎設(shè)置了最大長(zhǎng)度,一般不深入學(xué)習(xí)應(yīng)該很少遇到,這里不講述)
      • asc|desc是可選的,代表索引中的“關(guān)鍵字”的排序
    • 在現(xiàn)有表結(jié)構(gòu)的情況下增加索引:create index 索引名 on 表名 (字段  [索引的長(zhǎng)度] [asc|desc]);
    • 在現(xiàn)有表結(jié)構(gòu)的情況下增加索引:alter table 表名 add index|key 索引名(字段  [索引的長(zhǎng)度] [asc|desc]);

唯一索引:

  • 唯一索引,就是創(chuàng)建索引時(shí),要求字段的數(shù)據(jù)是唯一的。
  • 創(chuàng)建語(yǔ)法:
    • create table 表名(字段 數(shù)據(jù)類(lèi)型,字段 數(shù)據(jù)類(lèi)型,… unique index|key [索引名] (字段  [索引的長(zhǎng)度] [asc|desc]));
      • 【參數(shù)信息參考普通索引的】
    • 在現(xiàn)有表結(jié)構(gòu)的情況下增加索引:create unique index 索引名 on 表名 (字段  [索引的長(zhǎng)度] [asc|desc]);
    • 在現(xiàn)有表結(jié)構(gòu)的情況下增加索引:alter table 表名 add unqiue index|key 索引名(字段  [索引的長(zhǎng)度] [asc|desc]);

全文索引:fulltext index

  • 全文索引一般使用在數(shù)據(jù)類(lèi)型為char,varchar和text的字段上,方便查找這些比較長(zhǎng)的數(shù)據(jù)。
  • myisam存儲(chǔ)引擎支持全文索引
  • 創(chuàng)建語(yǔ)法:
    • create table 表名(字段 數(shù)據(jù)類(lèi)型,字段 數(shù)據(jù)類(lèi)型,… fulltext index|key [索引名] (字段  [索引的長(zhǎng)度] [asc|desc]));
      • 【參數(shù)信息參考普通索引的】
    • 在現(xiàn)有表結(jié)構(gòu)的情況下增加索引:create fulltext index 索引名 on 表名 (字段  [索引的長(zhǎng)度] [asc|desc]);
    • 在現(xiàn)有表結(jié)構(gòu)的情況下增加索引:alter table 表名 add fulltext index|key 索引名(字段  [索引的長(zhǎng)度] [asc|desc]);

單列索引:

  • 上面的加索引字段為一個(gè)時(shí),為單列索引

多列索引:

  • 加索引的字段為多個(gè)時(shí),為多列索引
  • 創(chuàng)建語(yǔ)法:只需要將上面的(字段  [索引的長(zhǎng)度] [asc|desc])變成(字段1  [索引的長(zhǎng)度] [asc|desc],字段2  [索引的長(zhǎng)度] [asc|desc],字段1  [索引的長(zhǎng)度] [asc|desc])即可。

查看索引:

  • 可以通過(guò)查看表結(jié)構(gòu)查看索引
    • image
  • 可以通過(guò)查看表創(chuàng)建語(yǔ)句查看索引
    • image
  • 可以使用explain語(yǔ)句查看索引,explain是用來(lái)判斷mysql語(yǔ)句執(zhí)行的時(shí)間效率的。
    • 所以可以使用explain select語(yǔ)句 where 加上索引的字段作為條件;
    • 結(jié)果中的possible_key是可能使用到的索引,key實(shí)際使用到的索引。
    • 比如:
      explain select * from user_info where username="lilei";
      image

刪除索引:

  • drop index 索引名 on 表名;
    • 比如:
      drop index myindex on user_info;

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《MySQL索引操作技巧匯總》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

相關(guān)文章

  • Mysql高性能優(yōu)化技能總結(jié)

    Mysql高性能優(yōu)化技能總結(jié)

    這篇文章主要介紹了Mysql高性能優(yōu)化技能總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2020-02-02
  • Mysql忘記密碼解決方法

    Mysql忘記密碼解決方法

    這篇文章主要給大家風(fēng)向的是Mysql忘記密碼解決方法,我們忘記mysql密碼時(shí),我們可以通過(guò)mysql的配置文件設(shè)置登錄不需要認(rèn)證就可以不需要密碼進(jìn)行登錄了,下面我們就進(jìn)入文章學(xué)習(xí)具體的解決方法吧
    2022-02-02
  • MYSQL刪除表中的指定ID數(shù)據(jù)

    MYSQL刪除表中的指定ID數(shù)據(jù)

    有些時(shí)候我們需要?jiǎng)h除表中指定ID數(shù)據(jù),主要是接下模糊刪除,需要的朋友可以參考下
    2013-01-01
  • mysql如何利用Navicat導(dǎo)出和導(dǎo)入數(shù)據(jù)庫(kù)的方法

    mysql如何利用Navicat導(dǎo)出和導(dǎo)入數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了mysql如何利用Navicat導(dǎo)出和導(dǎo)入數(shù)據(jù)庫(kù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • MySQL多表鏈接查詢(xún)核心優(yōu)化

    MySQL多表鏈接查詢(xún)核心優(yōu)化

    本篇文章主要介紹了MySQL多表鏈接查詢(xún)核心優(yōu)化,數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)表的多表查詢(xún)是必不可少的,所以涉及到性能優(yōu)化,有需要的可以了解一下。
    2016-11-11
  • 詳解Mysql中tinyint與int的區(qū)別

    詳解Mysql中tinyint與int的區(qū)別

    本文詳細(xì)講解了Mysql中tinyint與int的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Mysql中count(*)、count(1)、count(主鍵id)與count(字段)的區(qū)別

    Mysql中count(*)、count(1)、count(主鍵id)與count(字段)的區(qū)別

    本文主要介紹了Mysql中count(*)、count(1)、count(主鍵id)與count(字段)的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 一文深入探究MySQL自增鎖

    一文深入探究MySQL自增鎖

    MySQL的自增鎖是指在使用自增主鍵(Auto?Increment)時(shí),為了保證唯一性和正確性,系統(tǒng)會(huì)對(duì)自增字段進(jìn)行加鎖,這樣可以確保同時(shí)插入多條記錄時(shí),每條記錄都能夠獲得唯一的自增值,本將和大家一起深入探究MySQL自增鎖,需要的朋友可以參考下
    2023-08-08
  • MySQL中如何在原有的表中增加一列

    MySQL中如何在原有的表中增加一列

    這篇文章主要介紹了MySQL中如何在原有的表中增加一列問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • mysql數(shù)據(jù)存儲(chǔ)過(guò)程參數(shù)實(shí)例詳解

    mysql數(shù)據(jù)存儲(chǔ)過(guò)程參數(shù)實(shí)例詳解

    這篇文章主要介紹了mysql數(shù)據(jù)存儲(chǔ)過(guò)程參數(shù)實(shí)例詳解,小編覺(jué)得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10

最新評(píng)論