Chỉ mục (index) trong mysql - giải nghĩa và các lệnh cơ bản

839
04-03-2020
Chỉ mục (index) trong mysql - giải nghĩa và các lệnh cơ bản

Chỉ mục trong mysql là gì? Cùng Bizfly Cloud tìm hiểu và giải nghĩa các lệnh cơ bản ngay tại bài viết này. 

Giải nghĩa về chỉ mục (index)

Chỉ mục hay index là một mô hình bảng tra cứu được Database Search Engine sử dụng để tăng tốc độ và hiệu suất truy xuất dữ liệu thông qua con trỏ. Hoặc nói một cách đơn giản, một chỉ mục là một con trỏ tới dữ liệu trong bảng. Index trong Database có thể hiểu tương tự như các chỉ mục trong mục lục của một cuốn sách.

Ví dụ, khi muốn tìm tất cả các trang nói về cùng 1 chủ đề trong 1 cuốn sách, điều đầu tiên chúng ta làm sẽ là xem mục lục của cuốn sách đó và tìm tất cả các chương, mục, chủ đề theo thứ tự và sau đó tham chiếu tới các trang nội dung cụ thể.

Chỉ mục có thể giảm I/O đĩa bằng cách sử dụng phương thức truy cập đường dẫn nhanh để xác định vị trí dữ liệu nhanh chóng. Một index giúp tăng tốc các truy vấn SELECT cũng như các mệnh đề WHERE, nhưng lại làm chậm việc nhập dữ liệu, với các lệnh UPDATE và INSERT. Các chỉ mục có thể được tạo hoặc xóa mà không gây ảnh hưởng gì đến dữ liệu.

Chỉ mục (index) trong mysql - giải nghĩa và các lệnh cơ bản - Ảnh 1.

Một số lệnh index cơ bản

Tạo index trong một bảng:

Cú pháp để CREATE INDEX cơ bản:

CREATE INDEX ten_chi_muc ON ten_bang;

Ngoài ra, chúng ta cũng có thể tạo index cho 1 cột đơn Single Column Index trong SQL. Chỉ mục này được tạo cho chỉ 1 cột duy nhất trong bảng.

CREATE INDEX ten_chi_muc

ON ten_bang (ten_cot);

Để tạo index cho nhiều cột (Multiple-column index hay Composite) ta có cú pháp:

CREATE INDEX ten_chi_muc

ON ten_bang (cot1, cot2,...);

Lưu ý: Nếu không chỉ rõ tên column được đánh index trong bảng, mysql sẽ mặc định đánh index trên primary key hoặc các ràng buộc mang tính duy nhất trong bảng databases.

Lệnh UNIQUE INDEX

Unique index được sử dụng để duy trì tính toàn vẹn của dữ liệu chứa trong bảng cũng như cho mục đích tăng hiệu suất. Unique index cũng không cho phép nhập nhiều giá trị vào bảng.

CREATE UNIQUE INDEX ten_chi_muc

ON ten_bang (ten_cot);

Các lệnh thêm index:

1. Thêm index cho bảng, với index mang tính duy nhất và không thể null

ALTER TABLE tbl_name ADD PRIMARY KEY (column 1, column 2,..)

2. Thêm index cho bảng, với index mang tính duy nhất nhưng có thể null

ALTER TABLE tbl_name ADD UNIQUE index_name (column 1, column 2,..)

3. Thêm index cho bảng, có thể trùng lặp

ALTER TABLE tbl_name ADD INDEX index_name (column 1, column 2,..)

4. Thêm index đặc biệt thường cho tìm kiếm văn bản

ALTER TABLE tbl_name ADD FULLTEXT index_name (column 1, column 2,..)

Implicit Index trong SQL

Implicit Index (có thể hiểu là chỉ mục ngầm định) là chỉ mục mà được tạo tự động bởi Database Server khi một đối tượng được tạo. Các chỉ mục được tạo tự động cho các ràng buộc Primary key và các ràng buộc Unique.

Xóa index  

Để xóa chỉ mục ta sử dụng lệnh DROP INDEX.

DROP INDEX ten_chi_muc;

Muốn xóa 1 chỉ mục, bạn phải là chủ sở hữu của chỉ mục đó hoặc có quyền DROP ANY INDEX.

Xác nhận các index đã lập

Bạn có thể kiểm tra các chỉ mục khác nhau có trong một bảng cụ thể do người dùng hoặc chính máy chủ cung cấp và tính duy nhất của chúng.

select * from USER_INDEXES;

Lệnh sẽ hiển thị tất cả các chỉ mục có trong máy chủ cho bạn, trong đó bạn cũng có thể định vị các bảng của riêng mình.

Khi nào nên tránh sử dụng index

Không nên sử dụng cho các bảng nhỏ

Các cột không thường được sử dụng làm điều kiện trong truy vấn

Không nên dùng chỉ mục trên các cột thường xuyên bị thay đổi

Không nên sử dụng trên các cột có chứa một số lượng lớn giá trị NULL.

Vậy là chúng ta đã tìm hiểu xong các phần cơ bản về index cũng như cách sử dụng index trong mysql. Cùng tìm hiểu thêm kỹ hơn về index trong các bài viết tiếp theo bạn nhé!

Theo BizFly Cloud tổng hợp

>> Có thể bạn quan tâm: 4 tính năng Windows 10 cực kỳ hữu ích khi làm việc không phải ai cũng biết

BizFly Cloud là hệ sinh thái điện toán đám mây được vận hành bởi VCCorp - Công ty dẫn đầu trong lĩnh vực truyền thông và internet tại Việt Nam. Với đội ngũ kỹ thuật viên trình độ cao và kinh nghiệm lâu năm làm việc trên các công nghệ khác nhau như cloud, mobile, web..., chúng tôi có đủ khả năng để hỗ trợ đưa ra những lời khuyên hữu ích và công nghệ toàn diện giúp doanh nghiệp chuyển đổi số thành công. Dành cho độc giả quan tâm tới các dịch vụ đám mây do BizFly Cloud cung cấp có thể truy cập tại đây.
SHARE