国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL索引類型總結和使用技巧以及注意事項

2024-07-24 12:47:29
字體:
來源:轉載
供稿:網友

在數據庫表中,對字段建立索引可以大大提高查詢速度。假如我們創建了一個 mytable表:

復制代碼 代碼如下:
CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL  );

我們隨機向里面插入了10000條記錄,其中有一條:5555, admin。

在查找username="admin"的記錄 SELECT * FROM mytable WHERE username='admin';時,如果在username上已經建立了索引,MySQL無須任何掃描,即準確可找到該記錄。相反,MySQL會掃描所有記錄,即要查詢10000條記錄。

索引分單列索引和組合索引。單列索引,即一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合索引。組合索引,即一個索包含多個列。

MySQL索引類型包括:

一、普通索引

這是最基本的索引,它沒有任何限制。它有以下幾種創建方式:

1.創建索引

復制代碼 代碼如下:
CREATE INDEX indexName ON mytable(username(length));

如果是CHAR,VARCHAR類型,length可以小于字段實際長度;如果是BLOB和TEXT類型,必須指定 length,下同。

2.修改表結構

復制代碼 代碼如下:

ALTER mytable ADD INDEX [indexName] ON (username(length)) -- 創建表的時候直接指定

CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL,   INDEX [indexName] (username(length))   ); 

-- 刪除索引的語法:

DROP INDEX [indexName] ON mytable;

二、唯一索引

它與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。它有以下幾種創建方式:

復制代碼 代碼如下:
CREATE UNIQUE INDEX indexName ON mytable(username(length))
-- 修改表結構
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
-- 創建表的時候直接指定
CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL,   UNIQUE [indexName] (username(length))   );

三、主鍵索引

它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時創建主鍵索引:

復制代碼 代碼如下:
CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL,   PRIMARY KEY(ID)   );

當然也可以用 ALTER 命令。記住:一個表只能有一個主鍵。

四、組合索引

為了形象地對比單列索引和組合索引,為表添加多個字段:

復制代碼 代碼如下:
CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL,   city VARCHAR(50) NOT NULL,   age INT NOT NULL  ); 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善右旗| 石狮市| 保定市| 雷州市| 射阳县| 开远市| 常德市| 布尔津县| 罗定市| 时尚| 桦甸市| 长汀县| 海宁市| 阿拉善盟| 达拉特旗| 温宿县| 广宁县| 黑山县| 宁远县| 绥宁县| 巩留县| 桃源县| 水富县| 牡丹江市| 思南县| 稷山县| 洞头县| 福鼎市| 肥东县| 平舆县| 安西县| 时尚| 洱源县| 轮台县| 囊谦县| 墨竹工卡县| 屏山县| 普陀区| 钦州市| 满城县| 大田县|