Loại chỉ mục cơ sở dữ liệu MySQL / tạo / sử dụng kết hợp sử dụng câu lệnh ALTER trong MySQL

MySQLloại chỉ mục / tạo / sử dụng thay đổi kết hợp trongMySQLcách sử dụng câu lệnh

Chỉ mục MySQL

Việc thiết lập chỉ mục MySQL là rất quan trọng đối với hoạt động hiệu quả của MySQL và chỉ mục này có thể cải thiện đáng kể tốc độ truy xuất của MySQL.

Ví dụ, nếu MySQL với thiết kế và sử dụng chỉ mục hợp lý là một chiếc Lamborghini, thì MySQL không có chỉ mục và chỉ mục là một chiếc xe ba bánh của con người.

Chỉ số này được chia thành chỉ số cột đơn và chỉ số tổng hợp.Chỉ mục một cột, tức là một chỉ mục chỉ chứa một cột duy nhất, một bảng có thể có nhiều chỉ mục một cột, nhưng đây không phải là một chỉ mục tổng hợp.Chỉ mục tổng hợp, tức là một chỉ mục chứa nhiều cột.

Khi tạo chỉ mục, bạn cần đảm bảo rằng chỉ mục là điều kiện được áp dụng cho truy vấn SQL (nói chung là điều kiện của mệnh đề WHERE).

Trên thực tế, chỉ mục cũng là một bảng, bảng lưu khóa chính và các trường chỉ mục, đồng thời trỏ đến các bản ghi của bảng thực thể.

Trên đây là nói về lợi ích của việc sử dụng index, tuy nhiên việc sử dụng index quá nhiều sẽ dẫn đến lạm dụng.Do đó, chỉ mục cũng sẽ có những khuyết điểm: mặc dù chỉ mục cải thiện đáng kể tốc độ truy vấn nhưng nó sẽ làm giảm tốc độ cập nhật bảng, chẳng hạn như CHÈN, CẬP NHẬT và XÓA trên bảng.Vì khi cập nhật bảng, MySQL không chỉ lưu dữ liệu mà còn lưu cả tệp chỉ mục.

Lập chỉ mục tệp chỉ mục tiêu tốn dung lượng đĩa.


Chỉ số bình thường

tạo chỉ mục

Đây là chỉ số cơ bản nhất, nó không có hạn chế.Nó có thể được tạo theo những cách sau:

CREATE INDEX indexName ON mytable(username(length)); 

Đối với loại CHAR và VARCHAR, độ dài có thể nhỏ hơn độ dài thực của trường; đối với loại BLOB và TEXT, độ dài phải được chỉ định.

Sửa đổi cấu trúc bảng (thêm chỉ mục)

ALTER table tableName ADD INDEX indexName(columnName)

Chỉ định trực tiếp khi tạo bảng

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

Cú pháp bỏ chỉ mục

DROP INDEX [indexName] ON mytable; 

Chỉ mục duy nhất

Nó tương tự như chỉ mục thông thường trước đây, điểm khác biệt là: giá trị của cột chỉ mục phải là duy nhất, nhưng giá trị rỗng được phép.Trong trường hợp là chỉ mục tổng hợp, kết hợp các giá trị cột phải là duy nhất.Nó có thể được tạo theo những cách sau:

tạo chỉ mục

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

Sửa đổi cấu trúc bảng

ALTER table mytable ADD UNIQUE [indexName] (username(length))

Chỉ định trực tiếp khi tạo bảng

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

Thêm và xóa các chỉ mục bằng lệnh ALTER

Có bốn cách để thêm chỉ mục vào bảng dữ liệu:

  • ALTER TABLE tbl_name THÊM TỪ KHÓA CHÍNH (column_list): Câu lệnh này thêm một khóa chính, có nghĩa là các giá trị chỉ mục phải là duy nhất và không thể là NULL.
  • ALTER TABLE tbl_name THÊM DUY NHẤT index_name (column_list): Giá trị của chỉ mục được tạo bởi câu lệnh này phải là duy nhất (ngoại trừ NULL, NULL có thể xuất hiện nhiều lần).
  • ALTER TABLE tbl_name THÊM INDEX index_name (column_list): Thêm chỉ số bình thường, giá trị chỉ số có thể xuất hiện nhiều lần.
  • ALTER TABLE tbl_name THÊM FULLTEXT index_name (column_list):Câu lệnh chỉ định chỉ mục là FULLTEXT để lập chỉ mục toàn văn bản.

Ví dụ sau đây là thêm một chỉ mục vào một bảng.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Bạn cũng có thể sử dụng mệnh đề DROP trên lệnh ALTER để loại bỏ các chỉ mục.Hãy thử ví dụ sau để giảm chỉ mục:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Thêm và xóa khóa chính bằng lệnh ALTER

Khóa chính chỉ có thể hoạt động trên một cột. Khi thêm chỉ mục khóa chính, bạn cần đảm bảo rằng khóa chính không phải là NULL theo mặc định (NOT NULL).Ví dụ như sau:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

Bạn cũng có thể xóa khóa chính bằng lệnh ALTER:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Bạn chỉ cần chỉ định KHÓA CHÍNH khi đánh rơi khóa chính, nhưng khi đánh rơi một chỉ mục, bạn phải biết tên chỉ mục.


hiển thị thông tin chỉ mục

Bạn có thể sử dụng lệnh SHOW INDEX để liệt kê thông tin chỉ mục có liên quan trong bảng.Thông tin đầu ra có thể được định dạng bằng cách thêm \ G.

Hãy thử các ví dụ sau:

mysql> SHOW INDEX FROM table_name; \G
........

Hy vọng Chen Weiliang Blog ( https://www.chenweiliang.com/ ) đã chia sẻ "MySQL Database Index Type / Create / Use Combination ALTER Statement Usage in MySQL", rất hữu ích cho bạn.

Chào mừng bạn đến chia sẻ liên kết của bài viết này:https://www.chenweiliang.com/cwl-496.html

Chào mừng bạn đến với kênh Telegram trên blog của Chen Weiliang để cập nhật những thông tin mới nhất!

🔔 Hãy là người đầu tiên nhận được "Hướng dẫn sử dụng Công cụ AI tiếp thị nội dung ChatGPT" có giá trị trong thư mục trên cùng của kênh! 🌟
📚 Hướng dẫn này chứa đựng giá trị to lớn, 🌟Đây là cơ hội hiếm có, đừng bỏ lỡ! ⏰⌛💨
Chia sẻ và thích nếu bạn thích!
Chia sẻ và thích của bạn là động lực không ngừng của chúng tôi!

 

发表 评论

Địa chỉ email của bạn sẽ không được công bố. 项 已 * 标注

cuộn lên trên cùng