首頁 > 資料庫 > mysql教程 > mysql索引怎麼用

mysql索引怎麼用

(*-*)浩
發布: 2019-05-27 17:46:40
原創
6268 人瀏覽過

MySQL索引的概念

索引是一種特殊的檔案(InnoDB資料表上的索引是表空間的一個組成部分),它們包含著對資料表裡所有記錄的引用指標。更通俗的說,資料庫索引好比是一本書前面的目錄,能加快資料庫的查詢速度。上述SQL語句,在沒有索引的情況下,資料庫會遍歷全部200個資料後選擇符合條件的;而有了對應的索引之後,資料庫會直接在索引中尋找符合條件的選項。如果我們把SQL語句換成“SELECT * FROM article WHERE id=2000000”,那麼你是希望資料庫按照順序讀取完200萬行資料以後給你結果還是直接在索引中定位呢? (註:一般 資料庫預設都會為主鍵產生索引)。

推薦課程:MySql教學。

索引分為叢集索引和非叢集索引兩種,叢集索引是依照資料存放的實體位置為順序的,而非聚集索引就不一樣了;叢集索引能提高多行檢索的速度,而非叢集索引對於單行的檢索很快。

MySQL索引的型別

1. 普通索引

這是最基本的索引,它沒有任何限制,例如上文中為title欄位所建立的索引就是一個普通索引,MyIASM中預設的BTREE類型的索引,也是 我們大多數情況下所用到的索引。

–直接创建索引
CREATE INDEX index_name ON table(column(length))
–修改表结构的方式添加索引
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
–创建表的时候同时创建索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
INDEX index_name (title(length))
)
–删除索引
DROP INDEX index_name ON table
登入後複製

2. 唯一索引

與普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值(注意和主鍵不同) 。如果是組合索引,則列值的組合必須唯一,建立方法和普通索引類似。

–创建唯一索引
CREATE UNIQUE INDEX indexName ON table(column(length))
–修改表结构
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
–创建表的时候直接指定
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
UNIQUE indexName (title(length))
登入後複製

以上是mysql索引怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板