CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này tìm hiểu nhanh về các chỉ mục MySQL và được tác giả sưu tầm và sắp xếp. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.
Việc thiết lập chỉ mục MySQL là rất quan trọng để MySQL hoạt động hiệu quả. Các chỉ mục có thể cải thiện đáng kể tốc độ truy xuất của MySQL.
Ví dụ: nếu MySQL được thiết kế phù hợp và sử dụng các chỉ mục là một chiếc Lamborghini, thì MySQL không được thiết kế và sử dụng các chỉ mục là một chiếc xe ba bánh chạy bằng sức người.
Các chỉ mục được chia thành các chỉ mục cột đơn và các chỉ mục kết hợp. Chỉ mục một cột có nghĩa 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à chỉ mục kết hợp. Chỉ mục kết hợp, nghĩa 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 đó được áp dụng cho các điều kiện của câu lệnh truy vấn SQL (thường 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 lưu các trường khóa chính, chỉ mục và trỏ đến các bản ghi của bảng thực thể.
Trên đây đều nói về lợi ích của việc sử dụng chỉ mục, tuy nhiên việc sử dụng quá nhiều chỉ mục sẽ gây ra lạm dụng. Vì vậy, chỉ mục cũng sẽ có những nhược điểm: mặc dù chỉ mục cải thiện đáng kể tốc độ truy vấn nhưng nó cũng sẽ làm giảm tốc độ cập nhật bảng, chẳng hạn như INSERT, UPDATE và DELETE trên bảng. Bởi vì khi cập nhật bảng, MySQL không chỉ cần lưu dữ liệu mà còn cả file chỉ mục.
Lập chỉ mục các tập tin chỉ mục chiếm dung lượng đĩa.
Chỉ số thông thường.
Tạo chỉ mục.
Đây là chỉ số cơ bản nhất, nó không có giới hạn. Nó có thể được tạo theo những cách sau:
?
1
|
TẠO NÊN
MỤC LỤC
tên chỉ mục
TRÊN
mytable(tên người dùng(độ dài));
|
Nếu là loại CHAR, VARCHAR, độ dài có thể nhỏ hơn độ dài thực tế của trường; nếu là loại BLOB và TEXT, độ dài phải được chỉ định.
Sửa đổi cấu trúc bảng.
?
1
|
THAY ĐỔI
bảng của tôi
THÊM VÀO
MỤC LỤC
[tên chỉ mục]
TRÊN
(tên người dùng(chiều dài))
|
Chỉ định nó trực tiếp khi tạo bảng.
?
1
2
3
4
5
6
7
8
9
|
TẠO NÊN
BÀN
bảng của tôi(
NHẬN DẠNG
TỔNG QUAN
KHÔNG
VÔ GIÁ TRỊ
,
tên người dùng
VARCHAR
(16)
KHÔNG
VÔ GIÁ TRỊ
,
MỤC LỤC
[indexName] (tên người dùng (độ dài))
);
|
Cú pháp xóa chỉ mục.
?
1
|
LÀM RƠI
MỤC LỤC
[tên chỉ mục]
TRÊN
bảng của tôi;
|
Chỉ số duy nhất.
Nó tương tự như chỉ mục thông thường trước đó, ngoại trừ giá trị của cột chỉ mục phải là duy nhất nhưng cho phép giá trị null. Trong trường hợp chỉ mục tổng hợp, sự kết hợp của 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.
?
1
|
TẠO NÊN
ĐỘC NHẤT
MỤC LỤC
tên chỉ mục
TRÊN
mytable(tên người dùng(chiều dài))
|
Sửa đổi cấu trúc bảng.
?
1
|
THAY ĐỔI
bảng của tôi
THÊM VÀO
ĐỘC NHẤT
[tên chỉ mục]
TRÊN
(tên người dùng(chiều dài))
|
Chỉ định nó trực tiếp khi tạo bảng.
?
1
2
3
4
5
6
7
8
9
|
TẠO NÊN
BÀN
bảng của tôi(
NHẬN DẠNG
TỔNG QUAN
KHÔNG
VÔ GIÁ TRỊ
,
tên người dùng
VARCHAR
(16)
KHÔNG
VÔ GIÁ TRỊ
,
ĐỘC NHẤT
[indexName] (tên người dùng (độ dài))
);
|
Sử dụng lệnh ALTER để thêm và xóa chỉ mục.
Có bốn cách để thêm chỉ mục vào bảng dữ liệu:
- ALTER TABLE tbl_name THÊM KHÓA CHÍNH (danh sách cột): Câu lệnh này thêm khóa chính, nghĩa là giá trị chỉ mục phải là duy nhất và không thể là NULL.
- ALTER TABLE tbl_name ADD UNIQUE 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 ADD INDEX index_name (column_list): Thêm chỉ mục bình thường, giá trị chỉ mục có thể xuất hiện nhiều lần.
- ALTER TABLE tbl_name THÊM FULLTEXT tên chỉ mục (danh sách cột): Câu lệnh này chỉ định chỉ mục là FULLTEXT, được sử dụng để lập chỉ mục toàn văn bản.
Ví dụ sau thêm một chỉ mục vào bảng.
?
1
|
mysql>
THAY ĐỔI
BÀN
người thử nghiệm_tbl
THÊM VÀO
MỤC LỤC
(c);
|
Bạn cũng có thể sử dụng mệnh đề DROP trong lệnh ALTER để xóa chỉ mục. Hãy thử ví dụ sau để xóa chỉ mục
?
1
|
mysql>
THAY ĐỔI
BÀN
người thử nghiệm_tbl
LÀM RƠI
MỤC LỤC
(c);
|
Sử dụng lệnh ALTER để thêm và xóa khóa chính.
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. Ví dụ như sau:
?
1
2
|
mysql>
THAY ĐỔI
BÀN
người thử nghiệm_tbl
BIẾN ĐỔI
Tôi
TỔNG QUAN
KHÔNG
VÔ GIÁ TRỊ
;
mysql>
THAY ĐỔI
BÀN
người thử nghiệm_tbl
THÊM VÀO
SƠ ĐẲNG
CHÌA KHÓA
(Tôi);
|
Bạn cũng có thể xóa khóa chính bằng lệnh ALTER:
?
1
|
mysql>
THAY ĐỔI
BÀN
người thử nghiệm_tbl
LÀM RƠI
SƠ ĐẲNG
CHÌA KHÓA
;
|
Khi xóa bạn chỉ cần xác định PRIMARY KEY nhưng khi xóa 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 liên quan trong một bảng. Thông tin đầu ra có thể được định dạng bằng cách thêm \G.
Hãy thử ví dụ sau
?
1
2
|
mysql> HIỂN THỊ
MỤC LỤC
TỪ
tên_bảng\G
........
|
Trên đây là phần giới thiệu nhanh về chi tiết của chỉ mục MySQL. Để biết thêm thông tin về chỉ mục MySQL, vui lòng theo dõi các bài viết liên quan khác của tôi! .
Liên kết gốc: https://www.cnblogs.com/toutou/p/mysql_index.html.
Cuối cùng, bài viết về cách hiểu nhanh các chỉ mục MySQL này kết thúc ở đây. Nếu bạn muốn biết thêm về cách hiểu nhanh các chỉ mục MySQL, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai. .
Tôi là một lập trình viên xuất sắc, rất giỏi!