0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

mysql數(shù)據(jù)庫的五種索引類型

汽車玩家 ? 來源:工控自動化專家 ? 作者:工控自動化專家 ? 2020-04-12 18:11 ? 次閱讀

MySQL索引類型:

1、普通索引

最基本的索引,它沒有任何限制,用于加速查詢。

創(chuàng)建方法:

a.建表的時候一起創(chuàng)建

CREATE TABLE mytable ( name VARCHAR(32) , INDEX index_mytable_name (name) );

b. 建表后,直接創(chuàng)建索引

CREATE INDEX index_mytable_name ON mytable(name);

c. 修改表結(jié)構(gòu)

ALTER TABLE mytable ADD INDEX index_mytable_name (name);

注:如果是字符串字段,還可以指定索引的長度,在列命令后面加上索引長度就可以了(例如:name(11))

2、唯一索引

索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。

創(chuàng)建方法:

a.建表的時候一起創(chuàng)建

CREATE TABLE mytable ( `name` VARCHAR(32) , UNIQUE index_unique_mytable_name (`name`) );

b. 建表后,直接創(chuàng)建索引

CREATE UNIQUE INDEX index_mytable_name ON mytable(name);

c. 修改表結(jié)構(gòu)

ALTER TABLE mytable ADD UNIQUE INDEX index_mytable_name (name);

注:如果是字符串字段,還可以指定索引的長度,在列命令后面加上索引長度就可以了(例如:name(11))

3、主鍵索引

是一種特殊的唯一索引,一個表只能有一個主鍵,不允許有空值。一般是在建表的時候同時創(chuàng)建主鍵索引。

創(chuàng)建方法:

a.建表的時候一起創(chuàng)建

CREATE TABLE mytable ( `id` int(11) NOT NULL AUTO_INCREMENT , `name` VARCHAR(32) , PRIMARY KEY (`id`) );

b. 修改表結(jié)構(gòu)

ALTER TABLE test.t1 ADD CONSTRAINT t1_pk PRIMARY KEY (id);

注:如果是字符串字段,還可以指定索引的長度,在列命令后面加上索引長度就可以了(例如:name(11))

4、組合索引

指多個字段上創(chuàng)建的索引,只有在查詢條件中使用了創(chuàng)建索引時的第一個字段,索引才會被使用。使用組合索引時遵循最左前綴集合。

創(chuàng)建方法:

a.建表的時候一起創(chuàng)建

CREATE TABLE mytable ( `id` int(11) , `name` VARCHAR(32) , INDEX index_mytable_id_name (`id`,`name`) );

b. 建表后,直接創(chuàng)建索引

CREATE INDEX index_mytable_id_name ON mytable(id,name);

c. 修改表結(jié)構(gòu)

ALTER TABLE mytable ADD INDEX index_mytable_id_name(id,name);

5、全文索引

主要用來查找文本中的關(guān)鍵字,而不是直接與索引中的值相比較。

fulltext索引跟其它索引大不相同,它更像是一個搜索引擎,而不是簡單的where語句的參數(shù)匹配。

fulltext索引配合match against操作使用,而不是一般的where語句加like。

它可以在create table,alter table ,create index使用,不過目前只有char、varchar,text 列上可以創(chuàng)建全文索引。

創(chuàng)建方法:

a. 建表的時候一起創(chuàng)建

CREATE TABLE `article` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(250) NOT NULL , `contents` text NULL , `create_at` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (contents) );

b. 建表后,直接創(chuàng)建索引

CREATE FULLTEXT INDEX index_article_contents ON article(contents);

c. 修改表結(jié)構(gòu)

ALTER TABLE article ADD FULLTEXT INDEX index_article_contents(contents);

總結(jié)

雖然索引可以增加查詢數(shù)據(jù),但對于更新、創(chuàng)建或者刪除的時候,需要去維護(hù)索引,導(dǎo)致性能會受影響,因此,索引也不能建立太多。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3822

    瀏覽量

    64506
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    817

    瀏覽量

    26622
收藏 人收藏

    評論

    相關(guān)推薦

    構(gòu)建數(shù)據(jù)庫解決方案,基于華為云 Flexus X 實(shí)例容器化 MySQL 主從同步架構(gòu)

    前言**** 華為云 Flexus X 實(shí)例,融合柔性算力與智能調(diào)度,為數(shù)據(jù)庫解決方案帶來全新突破。采用容器化 MySQL 主從同步架構(gòu),實(shí)現(xiàn)數(shù)據(jù)高效備份與讀寫分離,保障業(yè)務(wù)連續(xù)性與數(shù)據(jù)
    的頭像 發(fā)表于 01-07 17:22 ?79次閱讀
    構(gòu)建<b class='flag-5'>數(shù)據(jù)庫</b>解決方案,基于華為云 Flexus X 實(shí)例容器化 <b class='flag-5'>MySQL</b> 主從同步架構(gòu)

    數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型

    數(shù)據(jù)庫是一部署在虛擬計(jì)算環(huán)境中的數(shù)據(jù)庫,它融合了云計(jì)算的彈性和可擴(kuò)展性,為用戶提供高效、靈活的數(shù)據(jù)庫服務(wù)。云數(shù)據(jù)庫主要分為兩大類:關(guān)系型
    的頭像 發(fā)表于 01-07 10:22 ?77次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫故障: Mysql數(shù)據(jù)庫表記錄丟失。 Mysql數(shù)據(jù)庫故障表現(xiàn): 1、
    的頭像 發(fā)表于 12-16 11:05 ?179次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫故障: mysql數(shù)據(jù)庫文件ibdata1、MYI、MYD損壞。 故障表現(xiàn):1、數(shù)據(jù)庫無法進(jìn)行查詢等操作;2、使用my
    的頭像 發(fā)表于 12-09 11:05 ?179次閱讀

    香港云服務(wù)器怎么部署MySQL數(shù)據(jù)庫

    在香港云服務(wù)器上部署MySQL數(shù)據(jù)庫的步驟如下: 步驟 1: 更新軟件包列表 首先,確保軟件包列表是最新的。在終端中執(zhí)行以下命令: sudo apt update 步驟 2: 安裝 MySQL
    的頭像 發(fā)表于 11-14 16:15 ?189次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫

    一個運(yùn)行在存儲上的SQLServer數(shù)據(jù)庫,有1000多個文件,大小幾十TB。數(shù)據(jù)庫每10天生成一個NDF文件,每個NDF幾百GB大小。數(shù)據(jù)庫包含兩個LDF文件。 存儲損壞,數(shù)據(jù)庫
    的頭像 發(fā)表于 10-31 13:21 ?265次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—通過拼接<b class='flag-5'>數(shù)據(jù)庫</b>碎片恢復(fù)SQLserver<b class='flag-5'>數(shù)據(jù)庫</b>

    適用于MySQL的dbForge架構(gòu)比較

    dbForge Schema Compare for MySQL 是一工具,用于輕松有效地比較和部署 MySQL 數(shù)據(jù)庫結(jié)構(gòu)和腳本文件夾差異。該工具提供了
    的頭像 發(fā)表于 10-28 09:41 ?225次閱讀
    適用于<b class='flag-5'>MySQL</b>的dbForge架構(gòu)比較

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫故障: SQL Server附加數(shù)據(jù)庫出現(xiàn)錯誤823,附加數(shù)據(jù)庫失敗。數(shù)據(jù)庫沒有備份,無法通過備份恢復(fù)數(shù)據(jù)庫。
    的頭像 發(fā)表于 09-20 11:46 ?372次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯誤的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    華納云:MySQL初始化操作如何創(chuàng)建新的數(shù)據(jù)庫

    要在MySQL中創(chuàng)建一個新的數(shù)據(jù)庫,可以按照以下步驟進(jìn)行操作: 登錄到MySQL數(shù)據(jù)庫管理系統(tǒng)中??梢允褂?b class='flag-5'>MySQL命令行客戶端或者圖形化工
    的頭像 發(fā)表于 09-04 14:30 ?279次閱讀

    恒訊科技分析:跨境電商網(wǎng)站有哪些數(shù)據(jù)庫系統(tǒng)是推薦使用的?

    對于跨境電商網(wǎng)站,數(shù)據(jù)庫系統(tǒng)的選擇非常關(guān)鍵,以下是一些推薦使用的數(shù)據(jù)庫系統(tǒng): 1、MySQLMySQL是一個流行的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)
    的頭像 發(fā)表于 08-12 15:01 ?390次閱讀

    一文了解MySQL索引機(jī)制

    接觸MySQL數(shù)據(jù)庫的小伙伴一定避不開索引,索引的出現(xiàn)是為了提高數(shù)據(jù)查詢的效率,就像書的目錄一樣。 某一個SQL查詢比較慢,你第一時間想到的
    的頭像 發(fā)表于 07-25 14:05 ?303次閱讀
    一文了解<b class='flag-5'>MySQL</b><b class='flag-5'>索引</b>機(jī)制

    恒訊科技分析:sql數(shù)據(jù)庫怎么用?

    SQL數(shù)據(jù)庫的使用通常包括以下幾個基本步驟: 1、選擇數(shù)據(jù)庫系統(tǒng): 選擇適合您需求的SQL數(shù)據(jù)庫系統(tǒng),如MySQL、PostgreSQL、Microsoft SQL Server、SQ
    的頭像 發(fā)表于 07-15 14:40 ?375次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)】Oracle數(shù)據(jù)庫ASM實(shí)例無法掛載的數(shù)據(jù)恢復(fù)案例

    oracle數(shù)據(jù)庫ASM磁盤組掉線,ASM實(shí)例不能掛載。數(shù)據(jù)庫管理員嘗試修復(fù)數(shù)據(jù)庫,但是沒有成功。
    的頭像 發(fā)表于 02-01 17:39 ?537次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)】Oracle<b class='flag-5'>數(shù)據(jù)庫</b>ASM實(shí)例無法掛載的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    怎么簡單實(shí)現(xiàn)由Labview讀取的串口數(shù)據(jù)自增寫入mysql5.7數(shù)據(jù)庫中?

    怎么簡單實(shí)現(xiàn)由Labview讀取的串口數(shù)據(jù)自增寫入mysql5.7數(shù)據(jù)庫中? 已實(shí)現(xiàn):串口數(shù)據(jù)的接收處理 mysql5.7的安裝(已測試
    發(fā)表于 01-11 22:05

    MySQL數(shù)據(jù)庫中通用表空間詳解

    MySQL 數(shù)據(jù)庫中有效管理存儲和性能至關(guān)重要,通用表空間為實(shí)現(xiàn)這一目標(biāo)提供了靈活性。本文討論通用表空間并探討其功能、優(yōu)點(diǎn)和實(shí)際用法,并附有說明性示例。
    的頭像 發(fā)表于 01-10 09:33 ?2247次閱讀