1.添加PRIMARY KEY(主鍵索引)
創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元阿爾山做網(wǎng)站,已為上家服務(wù),為阿爾山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
mysqlALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.添加UNIQUE(唯一索引)
mysqlALTER TABLE `table_name` ADD UNIQUE (
`column`
)
3.添加INDEX(普通索引)
mysqlALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.添加FULLTEXT(全文索引)
mysqlALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5.添加多列索引
mysqlALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
1.添加PRIMARY KEY(主鍵索引):
2.添加UNIQUE(唯一索引) :
3.添加INDEX(普通索引) :
4.添加FULLTEXT(全文索引) :
5.添加多列索引:
MySQL數(shù)據(jù)庫建立索引步驟:
1、使用SQLPlus或者PLSQL登錄MySQL數(shù)據(jù)庫。
2、執(zhí)行語句create
index
indexname
on
table(col)
tablespace
tablespacename;其中
"indexname"為需要建立索引的索引名;
"table"是需要建立索引的表;
"col"為需要建立索引的字段列;
”tablespacename“為建立索引存放的空間(如果不需要制定表空間則使用“create
index
indexname
on
table(col)”)。
我們可以通過查看索引的屬性來判斷創(chuàng)建索引的方法。
查看索引的語法格式如下:
SHOW INDEX FROM 表名 [ FROM 數(shù)據(jù)庫名]
語法說明如下:
表名:指定需要查看索引的數(shù)據(jù)表名。
數(shù)據(jù)庫名:指定需要查看索引的數(shù)據(jù)表所在的數(shù)據(jù)庫,可省略。比如,SHOW INDEX FROM student FROM test; 語句表示查看 test 數(shù)據(jù)庫中 student 數(shù)據(jù)表的索引。
示例
使用 SHOW INDEX 語句查看《MySQL創(chuàng)建索引》一節(jié)中 tb_stu_info2 數(shù)據(jù)表的索引信息,SQL 語句和運(yùn)行結(jié)果如下所示。
mysql SHOW INDEX FROM tb_stu_info2\G
1. row
Table: tb_stu_info2
Non_unique: 0
Key_name: height
Seq_in_index: 1
Column_name: height
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.03 sec)
其中各主要參數(shù)說明如下:
參數(shù) 說明
Table 表示創(chuàng)建索引的數(shù)據(jù)表名,這里是 tb_stu_info2 數(shù)據(jù)表。
Non_unique 表示該索引是否是唯一索引。若不是唯一索引,則該列的值為 1;若是唯一索引,則該列的值為 0。
Key_name 表示索引的名稱。
Seq_in_index 表示該列在索引中的位置,如果索引是單列的,則該列的值為 1;如果索引是組合索引,則該列的值為每列在索引定義中的順序。
Column_name 表示定義索引的列字段。
Collation 表示列以何種順序存儲(chǔ)在索引中。在 MySQL 中,升序顯示值“A”(升序),若顯示為 NULL,則表示無分類。
Cardinality 索引中唯一值數(shù)目的估計(jì)值?;鶖?shù)根據(jù)被存儲(chǔ)為整數(shù)的統(tǒng)計(jì)數(shù)據(jù)計(jì)數(shù),所以即使對(duì)于小型表,該值也沒有必要是精確的。基數(shù)越大,當(dāng)進(jìn)行聯(lián)合時(shí),MySQL 使用該索引的機(jī)會(huì)就越大。
Sub_part 表示列中被編入索引的字符的數(shù)量。若列只是部分被編入索引,則該列的值為被編入索引的字符的數(shù)目;若整列被編入索引,則該列的值為 NULL。
Packed 指示關(guān)鍵字如何被壓縮。若沒有被壓縮,值為 NULL。
Null 用于顯示索引列中是否包含 NULL。若列含有 NULL,該列的值為 YES。若沒有,則該列的值為 NO。
Index_type 顯示索引使用的類型和方法(BTREE、FULLTEXT、HASH、RTREE)。
Comment 顯示評(píng)注。
快速創(chuàng)建MyISAM 索引
在現(xiàn)代版本的InnoDB 版本中 有一個(gè)類似的技巧 這依賴于InnoDB 的快速在線索引創(chuàng)建功能 這個(gè)技巧是 先刪除所有的非唯一索引 然后增加新的列 最后重新創(chuàng)建刪除掉的索引 Percona Server 可以自動(dòng)完成這些操作步驟
也可以使用像前面說的ALTER TABLE 的駭客方法來加速這個(gè)操作 但需要多做一些工作并且承擔(dān)一定的風(fēng)險(xiǎn) 這對(duì)從備份中載入數(shù)據(jù)是很有用的 例如 當(dāng)已經(jīng)知道所有數(shù)據(jù)都是有效的并且沒有必要做唯一性檢查時(shí)就可以這么來操作
再次說明 這是沒有文檔說明并且不受官方支持的技巧 若使用的話 需要自己承擔(dān)風(fēng)險(xiǎn) 并且操作之前一定要先備份數(shù)據(jù)
下面是操作步驟
用需要的表結(jié)構(gòu)創(chuàng)建一張表 但是不包括索引
載入數(shù)據(jù)到表中以構(gòu)建 MYD 文件
按照需要的結(jié)構(gòu)創(chuàng)建另外一張空表 這次要包含索引 這會(huì)創(chuàng)建需要的 frm 和 MYI文件
獲取讀鎖并刷新表
重命名第二張表的 frm 和 MYI 文件 讓MySQL 認(rèn)為是第一張表的文件
釋放讀鎖
使用REPAIR TABLE 來重建表的索引 該操作會(huì)通過排序來構(gòu)建所有索引 包括唯一索引
這個(gè)操作步驟對(duì)大表來說會(huì)快很多
返回目錄 高性能MySQL
編輯推薦
ASP NET MVC 框架揭秘
Oracle索引技術(shù)
ASP NET開發(fā)培訓(xùn)視頻教程
lishixinzhi/Article/program/MySQL/201311/29670
本文標(biāo)題:mysql怎么給列建索引 怎么創(chuàng)建索引mysql
本文網(wǎng)址:http://chinadenli.net/article12/doddggc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、面包屑導(dǎo)航、做網(wǎng)站、企業(yè)建站、搜索引擎優(yōu)化、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)