Làm cách nào để tạo chỉ mục trong mysql?

MySQL là một ứng dụng cơ sở dữ liệu tổ chức dữ liệu trong các bảng, do đó có các giá trị được sắp xếp theo hàng và cột. Trong MySQL, chỉ mục là cấu trúc dữ liệu giúp thông tin dễ tìm kiếm hơn

Không có chỉ mục, MySQL đọc toàn bộ bảng để tìm hàng cần thiết và rất kém hiệu quả

Hướng dẫn này sẽ chỉ cho bạn cách tạo chỉ mục trong MySQL bằng cách sử dụng câu lệnh

mysql -u username -p
0

CREATE INDEX Statement to add an index in mysql

điều kiện tiên quyết

  • Bản cài đặt MySQL hiện có
  • Tài khoản người dùng MySQL có đặc quyền root hoặc quản trị viên
  • Truy cập vào một dòng lệnh/cửa sổ đầu cuối
    • Trong Linux, nhấp vào Hoạt động > Tìm kiếm > Thiết bị đầu cuối
    • Trong Windows, nhấp chuột phải vào Bắt đầu > Dòng lệnh (hoặc Windows PowerShell)

Chỉ mục MySQL là gì? . Điều này tăng tốc độ truy vấn dữ liệu, nhưng với chi phí không gian đĩa và đọc/ghi

Cú pháp tạo chỉ mục MySQL

Câu lệnh

mysql -u username -p
0 trong MySQL sử dụng định dạng sau

mysql> CREATE INDEX [some_index] ON [some_table] ([some_column],[other_column]);
  • mysql -u username -p
    2 – Tên của chỉ mục
  • mysql -u username -p
    3 – Tên của bảng có các cột được lập chỉ mục
  • mysql -u username -p
    4 – Tên của các cột sẽ được lập chỉ mục

Ghi chú. Sau đây là một ví dụ về câu lệnh

mysql -u username -p
5.
______06

MySQL Tạo chỉ mục trong bảng mới

Để tạo chỉ mục cùng lúc tạo bảng trong MySQL

1. Mở một cửa sổ đầu cuối và đăng nhập vào vỏ MySQL

mysql -u username -p

2. Tạo và chuyển sang cơ sở dữ liệu mới bằng cách nhập lệnh sau

mysql> CREATE DATABASE mytest;
Query OK, 1 row affected (0.01 sec)
mysql -u username -p
0

3. Tiếp theo, tạo các cột trong bảng và lập chỉ mục cho chúng

mysql -u username -p
1

Creating a MySQL table

Lệnh tạo một bảng có tên ví dụ, điền vào đó 4 cột và thêm các chỉ mục cho cột 2 và cột 3

4. Tiếp theo, hiển thị danh sách các chỉ mục từ bảng

mysql -u username -p
2

Bạn sẽ thấy chỉ mục cho PRIMARY, COL2 và COL3. Mặc dù PRIMARY không được chỉ định, MySQL đã tự động tạo một chỉ mục cho khóa chính

MySQL output that displays a MySQL index

Ghi chú. Không thể sử dụng chỉ mục để tạo khóa chính. Tuy nhiên, khi một bảng được tạo bằng khóa chính, MySQL sẽ tạo một chỉ mục có tên là

mysql -u username -p
7 cho các giá trị của khóa chính trong cùng một bảng đó. Đây còn được gọi là chỉ mục cụm

Thêm chỉ mục vào bảng MySQL hiện có

Các phương pháp hay nhất của MySQL khuyên bạn nên tạo chỉ mục cùng lúc với bảng được tạo. Tuy nhiên, một chỉ mục cũng có thể được thêm vào một bảng hiện có. Hướng dẫn bên dưới giải thích cách thêm chỉ mục vào bảng MySQL hiện có

Chỉ mục cơ sở dữ liệu là một cấu trúc dữ liệu giúp cải thiện tốc độ hoạt động trong một bảng. 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, cung cấp cơ sở cho cả tra cứu ngẫu nhiên nhanh chóng và sắp xếp hiệu quả quyền truy cập vào bản ghi

Khi tạo chỉ mục, cần xem xét tất cả các cột nào sẽ được sử dụng để thực hiện các truy vấn SQL và tạo một hoặc nhiều chỉ mục trên các cột đó

Trên thực tế, các chỉ mục cũng là một loại bảng, giữ khóa chính hoặc trường chỉ mục và một con trỏ tới từng bản ghi trong bảng thực tế

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 độ truy vấn và sẽ được Công cụ tìm kiếm cơ sở dữ liệu sử dụng để xác định vị trí các bản ghi rất nhanh

Các câu lệnh INSERT và UPDATE mất nhiều thời gian hơn trên các bảng có chỉ mục, trong khi các câu lệnh SELECT trở nên nhanh hơn trên các bảng đó. Lý do là trong khi thực hiện thao tác chèn hoặc cập nhật, cơ sở dữ liệu cũng cần chèn hoặc cập nhật các giá trị chỉ mục

Chỉ mục đơn giản và độc đáo

Bạn có thể tạo một chỉ mục duy nhất trên một bảng. Chỉ mục duy nhất có nghĩa là hai hàng không thể có cùng giá trị chỉ mục. Đây là cú pháp để tạo một Index trên một bảng

mysql -u username -p
4

Bạn có thể sử dụng một hoặc nhiều cột để tạo chỉ mục

Ví dụ: chúng ta có thể tạo chỉ mục trên tutorials_tbl bằng hướng dẫn_tác giả

mysql -u username -p
5

Bạn có thể tạo một chỉ mục đơn giản trên một bảng. Chỉ cần bỏ từ khóa UNIQUE khỏi truy vấn để tạo một chỉ mục đơn giản. Một chỉ mục đơn giản cho phép các giá trị trùng lặp trong một bảng

Nếu bạn muốn lập chỉ mục các giá trị trong một cột theo thứ tự giảm dần, bạn có thể thêm từ dành riêng DESC sau tên cột

mysql -u username -p
6

Lệnh ALTER để thêm và xóa INDEX

Có bốn loại câu lệnh để thêm chỉ mục vào bảng -

  • ALTER TABLE tbl_name THÊM KHÓA CHÍNH (column_list) − Câu lệnh này thêm KHÓA CHÍNH, có nghĩa là các giá trị được lập 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) − Câu lệnh này tạo một chỉ mục mà các giá trị phải là duy nhất (ngoại trừ các giá trị NULL, có thể xuất hiện nhiều lần)

  • ALTER TABLE tbl_name THÊM INDEX index_name (column_list) − Thao tác này thêm một chỉ mục thông thường trong đó bất kỳ giá trị nào cũng có thể xuất hiện nhiều lần

  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) − Điều này tạo ra một chỉ mục FULLTEXT đặc biệt được sử dụng cho mục đích tìm kiếm văn bản

Khối mã sau đây là một ví dụ để thêm chỉ mục vào một bảng hiện có

mysql -u username -p
7

Bạn có thể loại bỏ bất kỳ INDEX nào bằng cách sử dụng mệnh đề DROP cùng với lệnh ALTER

Hãy thử ví dụ sau để loại bỏ chỉ mục được tạo ở trên

mysql -u username -p
8

Bạn có thể loại bỏ bất kỳ INDEX nào bằng cách sử dụng mệnh đề DROP cùng với lệnh ALTER

ALTER Lệnh thêm và bỏ PRIMARY KEY

Bạn cũng có thể thêm khóa chính theo cách tương tự. Nhưng hãy đảm bảo rằng Khóa chính hoạt động trên các cột KHÔNG NULL

Khối mã sau đây là một ví dụ để thêm khóa chính vào bảng hiện có. Điều này sẽ tạo một cột KHÔNG NULL trước và sau đó thêm nó làm khóa chính

mysql -u username -p
9

Bạn có thể sử dụng lệnh ALTER để xóa khóa chính như sau -

mysql> CREATE INDEX [some_index] ON [some_table] ([some_column],[other_column]);
0

Để xóa một chỉ mục không phải là KHÓA CHÍNH, bạn phải chỉ định tên chỉ mục

Hiển thị thông tin INDEX

Bạn có thể sử dụng lệnh SHOW INDEX để liệt kê tất cả các chỉ mục được liên kết với một bảng. Đầu ra định dạng dọc (được chỉ định bởi \G) thường hữu ích với câu lệnh này, để tránh một dòng dài bao quanh -

Mục đích của việc tạo chỉ mục trong bảng MySQL là gì?

Chỉ mục được sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu nhanh hơn 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).

MySQL có TẠO INDEX trên khóa chính không?

Có, khóa chính được lập chỉ mục tự động trong MySQL vì khóa chính, chỉ mục, v.v. được lưu trữ trong cây B. Tất cả các công cụ bao gồm InnoDB cũng như MyISAM tự động hỗ trợ khóa chính được lập chỉ mục.

Cú pháp để tạo một chỉ mục là gì?

Cú pháp tạo chỉ mục là. TẠO INDEX "index_name" TRÊN "table_name" (column_name); Lưu ý rằng một chỉ mục chỉ có thể bao gồm một bảng.