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

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

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

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

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

MySQL索引類型:

1、普通索引

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

創(chuàng)建方法:

a.建表的時(shí)候一起創(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.建表的時(shí)候一起創(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、主鍵索引

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

創(chuàng)建方法:

a.建表的時(shí)候一起創(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、組合索引

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

創(chuàng)建方法:

a.建表的時(shí)候一起創(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索引跟其它索引大不相同,它更像是一個(gè)搜索引擎,而不是簡單的where語句的參數(shù)匹配。

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

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

創(chuàng)建方法:

a. 建表的時(shí)候一起創(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)建或者刪除的時(shí)候,需要去維護(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

    文章

    3739

    瀏覽量

    64181
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    794

    瀏覽量

    26359
收藏 人收藏

    評論

    相關(guān)推薦

    mysql怎么新建一個(gè)數(shù)據(jù)庫

    mysql怎么新建一個(gè)數(shù)據(jù)庫 如何新建一個(gè)數(shù)據(jù)庫MySQL中 創(chuàng)建一個(gè)數(shù)據(jù)庫MySQL中的基
    的頭像 發(fā)表于 12-28 10:01 ?812次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—未開啟binlog的Mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實(shí)例,數(shù)據(jù)庫引擎
    的頭像 發(fā)表于 12-08 14:18 ?1009次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—未開啟binlog的<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    eclipse怎么連接數(shù)據(jù)庫mysql

    連接Eclipse和MySQL數(shù)據(jù)庫可以通過JDBC(Java Database Connectivity)來實(shí)現(xiàn)。以下是詳細(xì)步驟: 下載并安裝MySQL數(shù)據(jù)庫:你首先需要下載并安裝
    的頭像 發(fā)表于 12-06 11:06 ?1143次閱讀

    MySQL數(shù)據(jù)庫的url地址

    MySQL數(shù)據(jù)庫的URL地址是用于連接到MySQL服務(wù)器的地址。URL是一統(tǒng)一資源定位符,用于指定特定資源的位置和訪問方式。MySQL
    的頭像 發(fā)表于 12-06 10:58 ?2431次閱讀

    mysql數(shù)據(jù)庫基礎(chǔ)命令

    MySQL是一個(gè)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),經(jīng)常用于存儲、管理和操作數(shù)據(jù)。在本文中,我們將詳細(xì)介紹MySQL的基礎(chǔ)命令,并提供與每個(gè)命令相關(guān)的詳細(xì)解釋。 登錄
    的頭像 發(fā)表于 12-06 10:56 ?512次閱讀

    mysql數(shù)據(jù)庫備份與還原

    MySQL是一常見的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),用于存儲和管理數(shù)據(jù)。備份和還原數(shù)據(jù)庫是非常重要的操作,可以保護(hù)
    的頭像 發(fā)表于 11-23 14:32 ?1101次閱讀

    MySQL數(shù)據(jù)庫基礎(chǔ)知識

    MySQL 是一開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它是目前最流行的數(shù)據(jù)庫之一。MySQL 提供了一
    的頭像 發(fā)表于 11-21 11:09 ?904次閱讀

    mysql數(shù)據(jù)庫如何創(chuàng)建數(shù)據(jù)

    MySQL是一常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),可以用于創(chuàng)建和管理數(shù)據(jù)表。下面是一篇詳細(xì)的關(guān)于MySQL數(shù)據(jù)
    的頭像 發(fā)表于 11-21 11:08 ?1700次閱讀

    數(shù)據(jù)庫的clob類型如何導(dǎo)入和導(dǎo)出

    數(shù)據(jù)庫的CLOB類型(Character Large Object)是用來存儲大量字符數(shù)據(jù)的字段類型。它可以存儲最大長度為4GB的字符數(shù)據(jù)
    的頭像 發(fā)表于 11-21 10:51 ?4295次閱讀

    mysql數(shù)據(jù)庫命令大全

    MySQL是一關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它擁有豐富的命令來管理和操作數(shù)據(jù)庫。以下是一份詳盡、詳實(shí)、細(xì)致的MySQL
    的頭像 發(fā)表于 11-16 16:39 ?1322次閱讀

    mysql數(shù)據(jù)庫增刪改查基本語句

    MySQL是一關(guān)系型數(shù)據(jù)庫管理系統(tǒng),提供了豐富的功能和語法,來支持數(shù)據(jù)的增刪改查。在本文中,將詳細(xì)介紹MySQL
    的頭像 發(fā)表于 11-16 16:36 ?862次閱讀

    數(shù)據(jù)庫mysql基本增刪改查

    MySQL是一開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),常用于Web應(yīng)用程序的數(shù)據(jù)存儲和管理。通過使用MySQL,用戶可以進(jìn)行
    的頭像 發(fā)表于 11-16 16:35 ?1408次閱讀

    mysql數(shù)據(jù)庫的增刪改查sql語句

    MySQL是一常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是許多網(wǎng)站和應(yīng)用程序的首選數(shù)據(jù)庫。在MySQL中,我們可以使用SQL(結(jié)構(gòu)化查詢語言)進(jìn)行
    的頭像 發(fā)表于 11-16 15:41 ?1093次閱讀

    mysql是一個(gè)什么類型數(shù)據(jù)庫

    MySQL是一關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),用于存儲和管理大量結(jié)構(gòu)化數(shù)據(jù)。它被廣泛用于各種應(yīng)用程序和網(wǎng)站的后端,包括電子商務(wù)平臺、社交媒體網(wǎng)站、金融系統(tǒng)等等。
    的頭像 發(fā)表于 11-16 14:43 ?1573次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MySQL數(shù)據(jù)庫表誤刪除記錄的數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 一臺本地windows sever操作系統(tǒng)服務(wù)器,服務(wù)器上部署mysql數(shù)據(jù)庫單實(shí)例,引擎類型為innodb,表內(nèi)
    的頭像 發(fā)表于 11-09 15:16 ?1218次閱讀
    <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ù)案例