Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tạo bảng MySQL có chỉ mục (index)

Tạo bảng và chỉ mục (INDEX) trong MySQL

Chỉ mục tăng tốc truy vấn SELECT, JOIN, WHERE, ORDER BY trên cột được index.

Cách 1: Tạo bảng rồi thêm index riêng

CREATE TABLE ten_bang ( cot1 kieu_du_lieu, cot2 kieu_du_lieu, ... ); 
CREATE INDEX ten_index_1 ON ten_bang(cot1); 
CREATE INDEX ten_index_2 ON ten_bang(cot2);

Ví dụ minh họa

mysql> create table DemoTable ( Id int, Name varchar(20) ); 
Query OK, 0 rows affected (0.63 sec)
mysql> create index id_index on DemoTable(Id); 
Query OK, 0 rows affected (0.36 sec) 
mysql> create index Name_index on DemoTable(Name); 
Query OK, 0 rows affected (0.38 sec)

Kiểm tra cấu trúc bảng

mysql> show create table DemoTable;
+---------------+-----------------------------------------------------------------------------------------+ 
| Table         | Create Table                                                                            | 
+---------------+-----------------------------------------------------------------------------------------+ 
| DemoTable     | CREATE TABLE `DemoTable` ( `Id` int(11) DEFAULT NULL, `Name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, KEY `id_index` (`Id`), KEY `Name_index` (`Name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | 
+---------------+-----------------------------------------------------------------------------------------+

Cách 2: Tạo index ngay trong CREATE TABLE

CREATE TABLE DemoTable ( 
    Id int, 
    Name varchar(20), 
    INDEX id_index (Id), 
    INDEX Name_index (Name) 
);

Các loại Index phổ biến:

  • INDEX / KEY: Chỉ mục thông thường (cho phép trùng, NULL)
  • UNIQUE INDEX: Chỉ mục duy nhất (không trùng, cho phép NULL)
  • PRIMARY KEY: Khóa chính (duy nhất, NOT NULL, chỉ 1/bảng)
  • FULLTEXT: Tìm kiếm toàn văn bản
  • SPATIAL: Dữ liệu không gian

Lưu ý: Index làm chậm INSERT/UPDATE/DELETE (cần cập nhật index). Chỉ tạo index trên cột thường xuyên dùng trong WHERE, JOIN, ORDER BY.