
- MySQLi 教程
- MySQLi - 首頁
- MySQLi - 簡介
- MySQLi - PHP 語法
- MySQLi - 連線
- MySQLi - 建立資料庫
- MySQLi - 刪除資料庫
- MySQLi - 選擇資料庫
- MySQLi - 建立表
- MySQLi - 刪除表
- MySQLi - 插入查詢
- MySQLi - 選擇查詢
- MySQLi - WHERE 子句
- MySQLi - 更新查詢
- MySQLi - 刪除查詢
- MySQLi - LIKE 子句
- MySQLi - 排序結果
- MySQLi - 使用連線
- MySQLi - 處理 NULL 值
- 獲取和使用 MySQLi 元資料
- MySQL
- MySQL - 安裝
- MySQL - 管理
- MySQL - 資料型別
- MySQL - 正則表示式
- MySQL - 事務
- MySQL - ALTER 命令
- MySQL - 索引
- MySQL - 臨時表
- MySQL - 克隆表
- MySQL - 使用序列
- MySQL - 處理重複資料
- MySQLi 有用資源
- MySQLi - 有用函式
- MySQLi - 快速指南
- MySQLi - 有用資源
- MySQLi - 討論
MySQLi - 索引
資料庫索引是一種資料結構,它可以提高表中操作的速度。索引可以使用一列或多列建立,為快速隨機查詢和有效排序訪問記錄提供基礎。
在建立索引時,應考慮哪些列將用於執行 SQL 查詢,並在這些列上建立一個或多個索引。
實際上,索引也是一種型別的表,它儲存主鍵或索引欄位以及指向實際表中每個記錄的指標。
使用者無法看到索引,它們僅用於加速查詢,並由資料庫搜尋引擎用於非常快速地定位記錄。
INSERT 和 UPDATE 語句在具有索引的表上花費更多時間,而 SELECT 語句在這些表上變得更快。原因是在執行插入或更新時,資料庫也需要插入或更新索引值。
簡單索引和唯一索引
您可以在表上建立唯一索引。唯一索引意味著兩行不能具有相同的索引值。以下是建立表索引的語法。
CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...);
您可以使用一列或多列來建立索引。例如,我們可以使用 NAME_INDEX 在 tutorials_inf 上建立索引。
CREATE UNIQUE INDEX NAME_INDEX ON tutorials_inf(name);
您可以在表上建立簡單索引。只需從查詢中省略 UNIQUE 關鍵字即可建立簡單索引。簡單索引允許表中存在重複值。
如果要按降序對列中的值進行索引,可以在列名後新增保留字 DESC。
mysql> CREATE UNIQUE INDEX NAME_INDEX ON tutorials_inf (name DESC);
ALTER 命令新增和刪除索引
有四種類型的語句用於向表新增索引:
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - 此語句新增一個 PRIMARY KEY,這意味著索引值必須唯一且不能為 NULL。
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - 此語句建立一個索引,其中值必須唯一(除了 NULL 值,它可以出現多次)。
ALTER TABLE tbl_name ADD INDEX index_name (column_list) - 這將新增一個普通索引,其中任何值都可能出現多次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) - 這將建立一個用於文字搜尋目的的特殊 FULLTEXT 索引。
以下是在現有表中新增索引的示例。
mysql> ALTER TABLE tutorials_inf ADD INDEX (id);
您可以使用 DROP 子句和 ALTER 命令刪除任何索引。嘗試以下示例以刪除上面建立的索引。
mysql> ALTER TABLE tutorials_inf DROP INDEX (c);
您可以使用 DROP 子句和 ALTER 命令刪除任何索引。嘗試以下示例以刪除上面建立的索引。
ALTER 命令新增和刪除主鍵
您可以以相同的方式新增主鍵。但請確保主鍵作用於非 NULL 列。
以下是在現有表中新增主鍵的示例。這將首先使列成為 NOT NULL,然後將其新增為主鍵。
mysql> ALTER TABLE tutorials_inf MODIFY id INT NOT NULL; mysql> ALTER TABLE tutorials_inf ADD PRIMARY KEY (id);
您可以使用 ALTER 命令刪除主鍵,如下所示
mysql> ALTER TABLE tutorials_inf DROP PRIMARY KEY;
要刪除不是 PRIMARY KEY 的索引,必須指定索引名稱。
顯示索引資訊
您可以使用 SHOW INDEX 命令列出與表關聯的所有索引。垂直格式輸出(由 \G 指定)通常與此語句一起使用,以避免長行換行:
嘗試以下示例
mysql> SHOW INDEX FROM table_name\G ........