Cách sử dụng chỉ mục trong mysql

Chỉ mục là một cấu trúc dữ liệu cho phép chúng ta thêm các chỉ mục trong bảng hiện có. Nó cho phép bạn cải thiện việc truy xuất bản ghi nhanh hơn trên bảng cơ sở dữ liệu. Nó tạo một mục nhập cho từng giá trị của các cột được lập chỉ mục. Chúng tôi sử dụng nó để nhanh chóng tìm thấy bản ghi mà không cần tìm kiếm từng hàng trong bảng cơ sở dữ liệu bất cứ khi nào bảng được truy cập. Chúng ta có thể tạo một chỉ mục bằng cách sử dụng một hoặc nhiều cột của bảng để truy cập hiệu quả vào các bản ghi

Khi một bảng được tạo bằng khóa chính hoặc khóa duy nhất, nó sẽ tự động tạo một chỉ mục đặc biệt có tên là CHÍNH. Chúng tôi gọi chỉ mục này là chỉ mục nhóm. Tất cả các chỉ mục khác với chỉ mục CHÍNH được gọi là chỉ mục không nhóm hoặc chỉ mục phụ

Cần lập chỉ mục trong MySQL

Giả sử chúng ta có một sổ liên lạc chứa tên và số điện thoại di động của người dùng. Trong sổ liên lạc này, chúng tôi muốn tìm số điện thoại di động của Martin Williamson. Nếu sổ liên lạc ở dạng không có thứ tự nghĩa là tên của sổ liên lạc không được sắp xếp theo thứ tự abc, chúng ta cần phải xem qua tất cả các trang và đọc từng tên cho đến khi không tìm thấy tên mong muốn mà chúng ta đang tìm kiếm. Loại tên tìm kiếm này được gọi là tìm kiếm tuần tự

Để tìm tên và liên hệ của người dùng từ bảng danh bạ, thông thường, chúng ta thường thực hiện truy vấn sau

Truy vấn này rất đơn giản và dễ dàng. Mặc dù tìm thấy số điện thoại và tên của người dùng nhanh chóng, nhưng cơ sở dữ liệu sẽ tìm kiếm toàn bộ các hàng của bảng cho đến khi không tìm thấy các hàng mà bạn muốn. Giả sử bảng danh bạ chứa hàng triệu hàng, khi đó nếu không có chỉ mục thì việc truy xuất dữ liệu mất rất nhiều thời gian mới tìm được kết quả. Trong trường hợp đó, lập chỉ mục cơ sở dữ liệu đóng một vai trò quan trọng trong việc trả về kết quả mong muốn và cải thiện hiệu suất tổng thể của truy vấn

Câu lệnh TẠO INDEX của MySQL

Nói chung, chúng tôi tạo một chỉ mục tại thời điểm tạo bảng trong cơ sở dữ liệu. Câu lệnh sau đây tạo một bảng có chỉ mục chứa hai cột col2 và col3

Nếu chúng ta muốn thêm chỉ mục vào bảng, chúng ta sẽ sử dụng câu lệnh CREATE INDEX như sau

Trong câu lệnh này, index_name là tên của chỉ mục, table_name là tên của bảng chứa chỉ mục và column_names là danh sách các cột

Hãy để chúng tôi thêm chỉ mục mới cho cột col4, chúng tôi sử dụng câu lệnh sau

Theo mặc định, MySQL cho phép loại chỉ mục BTREE nếu chúng tôi chưa chỉ định loại chỉ mục. Bảng sau đây hiển thị các loại chỉ mục khác nhau dựa trên công cụ lưu trữ của bảng

Chỉ mục công cụ lưu trữ SAN Loại 1. InnoDBBTREE2. Bộ nhớ/HeapHASH, BTREE3. MYISAMBTREE

Thí dụ

Trong ví dụ này, chúng ta sẽ tạo một bảng student và thực hiện câu lệnh CREATE INDEX trên bảng đó

Tên bảng. sinh viên

Bây giờ, hãy thực hiện câu lệnh sau để trả về kết quả của sinh viên có lớp là nhánh CS

Tuyên bố này sẽ cung cấp cho đầu ra sau

Trong bảng trên, chúng ta có thể thấy bốn hàng biểu thị các sinh viên có lớp là chi nhánh CS

Nếu bạn muốn xem cách MySQL thực hiện truy vấn này bên trong, hãy thực hiện câu lệnh sau

Bạn sẽ nhận được đầu ra dưới đây. Ở đây, MySQL quét toàn bộ bảng có bảy hàng để tìm sinh viên có lớp là nhánh CS

Bây giờ, chúng ta hãy tạo một chỉ mục cho cột lớp bằng cách sử dụng câu lệnh sau

Sau khi thực hiện câu lệnh trên, chỉ mục được tạo thành công. Bây giờ, hãy chạy câu lệnh dưới đây để xem cách MySQL thực hiện truy vấn này bên trong

Câu lệnh trên cho đầu ra, như hình bên dưới

Trong kết quả này, MySQL tìm thấy bốn hàng từ chỉ mục lớp mà không cần quét toàn bộ bảng. Do đó, nó làm tăng tốc độ truy xuất các bản ghi trên bảng cơ sở dữ liệu

Các chỉ mục được sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu nhanh hơn so với cách khác. Người dùng không thể nhìn thấy các chỉ mục, chúng chỉ được sử dụng để tăng tốc độ tìm kiếm/truy vấn

Ghi chú. Cập nhật bảng có chỉ mục mất nhiều thời gian hơn cập nhật bảng không có chỉ mục [vì chỉ mục cũng cần cập nhật]. Vì vậy, chỉ tạo các chỉ mục trên các cột sẽ được tìm kiếm thường xuyên

Cú pháp TẠO CHỈ SỐ

Tạo một chỉ mục trên một bảng. Các giá trị trùng lặp được cho phép

TẠO INDEX index_name
BẬT tên_bảng [cột1, cột2,. ];

TẠO CHỈ SỐ DUY NHẤT Cú pháp

Tạo một chỉ mục duy nhất trên một bảng. Giá trị trùng lặp không được phép

TẠO INDEX DUY NHẤT tên_chỉ mục
BẬT tên_bảng [cột1, cột2,. ];

MySQL CREATE INDEX Ví dụ

Câu lệnh SQL dưới đây tạo một chỉ mục có tên "idx_lastname" trên cột "LastName" trong bảng "Persons"

TẠO CHỈ MỤC idx_lastname
BẬT Người [Họ];

Nếu bạn muốn tạo chỉ mục trên tổ hợp cột, bạn có thể liệt kê tên cột trong dấu ngoặc đơn, phân tách bằng dấu phẩy

Việc sử dụng một chỉ mục là gì?

Chỉ mục được sử dụng để nhanh chóng định vị dữ liệu mà không phải tìm kiếm mọi hàng trong bảng cơ sở dữ liệu mỗi khi bảng cơ sở dữ liệu được truy cập . Các chỉ mục có thể được tạo bằng cách sử dụng một hoặc nhiều cột của bảng cơ sở dữ liệu, cung cấp cơ sở cho cả tra cứu ngẫu nhiên nhanh chóng và truy cập hiệu quả các bản ghi được sắp xếp.

Khóa chỉ mục trong MySQL là gì?

Trong MySQL, chỉ mục là cấu trúc dữ liệu được sử dụng để tìm nhanh các hàng . Chỉ mục còn được gọi là khóa và những khóa đó rất quan trọng để có hiệu suất tốt – khi dữ liệu ngày càng lớn hơn, nhu cầu sử dụng chỉ mục đúng cách có thể ngày càng trở nên quan trọng hơn.

Cú pháp để sử dụng chỉ mục là gì?

Cú pháp. Cú pháp để tạo một chỉ mục trong SQL là. TẠO [UNIQUE] INDEX index_name TRÊN tên_bảng [cột1, cột2,. column_n];

Khi nào tôi nên TẠO INDEX trong MySQL?

Tạo chỉ mục . Bất kỳ cột nào trong câu lệnh tạo bảng được khai báo là PRIMARY KEY, KEY, UNIQUE hoặc INDEX sẽ được MySQL lập chỉ mục tự động. Ngoài ra, bạn có thể thêm chỉ mục vào các bảng có dữ liệu. when creating table. Any column in creating table statement declared as PRIMARY KEY, KEY, UNIQUE or INDEX will be indexed automatically by MySQL. In addition, you can add indexes to the tables which has data.

Chủ Đề