Trong hướng dẫn này, bạn sẽ tìm hiểu về chỉ mục và cách sử dụng câu lệnh MySQL CREATE INDEX để thêm chỉ mục vào bảng.
Bạn đang xem : ví dụ về tạo chỉ mục mysql
Tóm tắt : trong này hướng dẫn, bạn sẽ tìm hiểu về chỉ mục và cách sử dụng câu lệnh MySQL CREATE INDEX
để thêm chỉ mục vào bảng.
Tương tự danh bạ điện thoại
Giả sử bạn có một danh bạ điện thoại chứa tất cả tên và số điện thoại của những người trong một thành phố. Giả sử bạn muốn tìm số điện thoại của Bob Cat. Biết rằng các tên được sắp xếp theo thứ tự bảng chữ cái, trước tiên bạn tìm trang có họ là Cat
, sau đó tìm Bob
và số điện thoại của anh ấy.
< p> Bây giờ, nếu các tên trong danh bạ điện thoại không được sắp xếp theo thứ tự bảng chữ cái, bạn cần phải xem qua tất cả các trang, đọc từng tên trên đó cho đến khi bạn tìm thấy Bob Cat
. Đây được gọi là tìm kiếm tuần tự. Bạn xem qua tất cả các mục nhập cho đến khi bạn tìm thấy người có số điện thoại bạn đang tìm.
Liên hệ danh bạ với bảng cơ sở dữ liệu, nếu bạn có bảng danh bạ
và bạn phải tìm số điện thoại của Bob Cat
, bạn sẽ thực hiện truy vấn sau:
CHỌN
số điện thoạiTỪ
danh bạỞ ĐÂU
first_name ='Bob'
VÀ
last_name ='Cat'
;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Nó khá dễ dàng. Mặc dù truy vấn nhanh nhưng cơ sở dữ liệu phải quét tất cả các hàng của bảng cho đến khi tìm thấy hàng đó. Nếu bảng có hàng triệu hàng, không có chỉ mục, thì việc truy xuất dữ liệu sẽ mất rất nhiều thời gian để trả về kết quả.
Giới thiệu về chỉ mục
Chỉ mục là một cấu trúc dữ liệu như vậy như B-Tree, cải thiện tốc độ truy xuất dữ liệu trên bảng với chi phí ghi và lưu trữ bổ sung để duy trì nó.
Trình tối ưu hóa truy vấn có thể sử dụng các chỉ mục để nhanh chóng xác định vị trí dữ liệu mà không cần phải quét mọi hàng trong một bảng cho một truy vấn nhất định.
Khi bạn tạo bảng bằng khóa chính hoặc khóa duy nhất , MySQL sẽ tự động tạo một chỉ mục đặc biệt có tên PRIMARY
. Chỉ mục này được gọi là chỉ mục nhóm .
Chỉ mục PRIMARY
đặc biệt vì bản thân chỉ mục được lưu trữ cùng với dữ liệu trong cùng một bảng. Chỉ mục được phân nhóm thực thi thứ tự của các hàng trong bảng.
Các chỉ mục khác ngoài chỉ mục PRIMARY
được gọi là chỉ mục phụ hoặc chỉ mục không được phân nhóm.
Câu lệnh MySQL CREATE INDEX
Thông thường, bạn tạo chỉ mục cho một bảng tại thời điểm tạo. Ví dụ: câu lệnh sau tạo một bảng mới với chỉ mục bao gồm hai cột c2 và c3.
TẠO
BẢNG
t ( c1INT
PRIMARYKEY
, c2INT
NOT
KHÔNG ĐỦ
, c3INT
NOT
KHÔNG ĐẦY ĐỦ
, c4VARCHAR
(10
),CHỈ SỐ
(c2, c3) );Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Tới thêm chỉ mục cho một cột hoặc một tập hợp các cột, bạn sử dụng câu lệnh CREATE INDEX
như sau:
TẠO
CHỈ SỐ
index_nameBẬT
table_name (column_list)Code language:
SQL (Structured Query Language) < / p>
(
sql
)
pre>Để tạo chỉ mục cho một cột hoặc danh sách các cột, bạn chỉ định tên chỉ mục, bảng chứa chỉ mục và danh sách cột.
Ví dụ: để thêm chỉ mục mới cho cột c4, bạn sử dụng câu lệnh sau:
TẠO
CHỈ SỐ
idx_c4BẬT
t ( c4);Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Theo mặc định, MySQL tạo chỉ mục B-Tree nếu bạn không chỉ định loại chỉ mục. Phần sau hiển thị loại chỉ mục được phép dựa trên công cụ lưu trữ của bảng:
Storage EngineAllowed Index TypesInnoDBBTREEMyISAMBTREEMEMORY / HEAPHASH, BTREE
Lưu ý rằng câu lệnh
CREATE INDEX
ở trên là phiên bản đơn giản hóa của câu lệnhCREATE INDEX
do MySQL giới thiệu. Chúng tôi sẽ đề cập đến các tùy chọn khác trong các hướng dẫn tiếp theo.MySQL
CREATE INDEX
exampleCâu lệnh sau tìm nhân viên có chức danh là
Đại diện bán hàng < / code>:
CHỌN
Số nhân viên, họ, họTỪ
người lao độngỞ ĐÂU
jobTitle ='Đại diện bán hàng'
;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Đây là kết quả:
![]()
Chúng tôi có 17 hàng cho biết 17 nhân viên có chức danh là Đại diện bán hàng.
Để xem cách MySQL thực hiện nội bộ truy vấn này, bạn thêm mệnh đề
EXPLAIN
ở đầuCâu lệnh SELECT
như sau:
![]()
Như bạn có thể xem, MySQL đã phải quét toàn bộ bảng bao gồm 23 hàng để tìm nhân viên có chức danh công việc
Đại diện bán hàng
.Bây giờ, hãy tạo chỉ mục cho
cột jobTitle
bằng cách sử dụng câu lệnhCREATE INDEX
:
TẠO
CHỈ SỐ
jobTitleBẬT
nhân viên (jobTitle) ;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Và thực thi lại câu lệnh trên:
GIẢI THÍCH
CHỌN
Số nhân viên, họ, họTỪ
người lao độngỞ ĐÂU
jobTitle ='Đại diện bán hàng'
;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Đầu ra là:
![]()
Như bạn có thể thấy, MySQL chỉ cần định vị 17 hàng từ chỉ mục
jobTitle
như được chỉ ra trong cột khóa mà không cần quét toàn bộ bảng.Để hiển thị các chỉ mục của bảng, bạn sử dụng
SHOW INDEXES câu lệnh span>
, ví dụ:
HIỂN THỊ
CHỈ SỐ
TỪ
nhân viên;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Đây là kết quả:
![]()
Trong hướng dẫn này , bạn đã tìm hiểu về chỉ mục MySQL và cách thêm chỉ mục cho một cột trong bảng.
Hướng dẫn này có hữu ích không?
Xem thêm những thông tin liên quan đến chủ đề mysql tạo chỉ mục ví dụ
Bài 11: Hướng dẫn sử dụng Index trong MySQL
- Tác giả: Le Academy
- Ngày đăng: 2020-08-08
- Đánh giá: 4 ⭐ ( 8238 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Index trong MySQL là một trong những yếu tố quan trọng nhất góp phần vào việc nâng cao hiệu suất của cơ sở dữ liệu. Index trong SQL tăng tốc độ của quá trình truy vấn dữ liệu bằng cách cung cấp phương pháp truy xuất nhanh chóng tới các dòng trong các bảng.
Video này sẽ hướng dẫn các bạn cách sử dụng index trong MySQL như thế nào để quá trình truy vấn dữ liệu được tối ưu nhất có thể thông qua những ví dụ minh hoạ anh chia sẻ.► Xem thêm bài viết chi tiết tại: https://levunguyen.com/database/2020/05/19/database-index/
hoclaptrinh mysql indextrongmysql► Subscribe kênh Youtube của Nguyên để nhận được video mới MIỄN PHÍ hằng tuần tại đây ngay nhé: https://bom.to/644ln9z9hS
Channel Le Vu Nguyen Vlog là nơi chia sẻ những kiến thức chuyên môn về lập trình nhằm hỗ trợ cho quá trình học lập trình của các bạn. Với những chia sẻ về kiến thức lập trình từ cơ bản cho đến nâng cao được phân loại theo từng danh mục hi vọng sẽ giúp bạn từng bước chinh phục lĩnh vực này và có thể trở thành một lập trình viên chuyên nghiệp trong tương lai.
► Khám phá thêm các nguồn học lập trình miễn phí:
Các khoá học lập trình online miễn phí tại: https://hoclaptrinhonline.asia
Các bài viết chia sẻ về lĩnh vực lập trình tại: https://levunguyen.com
Tham gia group Da Nang Agile Developer Community để hỏi-đáp về lĩnh vực lập trình: https://www.facebook.com/groups/danangagiledeveloper
Kênh tiktok lĩnh vực lập trình: https://www.tiktok.com/@lap_trinh_vien?lang=en&is_copy_url=1&is_from_webapp=v3ĐỪNG NGẠI ĐỂ LẠI THẮC MẮC CỦA BẠN DƯỚI PHẦN BÌNH LUẬN, MÌNH SẼ CỐ GẮNG GIẢI ĐÁP SỚM NHẤT CHO CÁC BẠN.
Index (chỉ mục) trong MySQL - Create, Add & Drop
- Tác giả: viblo.asia
- Đánh giá: 5 ⭐ ( 8320 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Index là gì? Các chỉ mục trong MySQL sắp xếp dữ liệu theo cách tuần tự có tổ chức. Chúng được tạo trên (các) cột sẽ được sử dụng để lọc dữ liệu. Hãy coi một chỉ mục như một danh sách được sắp xếp theo...
Tạo Index cho nhiều cột trong MySQL
- Tác giả: freetuts.net
- Đánh giá: 4 ⭐ ( 9670 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Trong bài này chúng ta sẽ học cách tạo chỉ mục index cho nhiều cột trong MySQL, đây là cách giúp bạn tối ưu hóa câu truy vấn trong một số trường hợp cụ thể
Chỉ mục (INDEX) trong MySQL
- Tác giả: vietjack.com
- Đánh giá: 4 ⭐ ( 5368 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Chỉ mục (INDEX) trong MySQL - Học MySQL cơ bản đến nâng cao bắt đầu từ MySQL và PHP, Cơ sở dữ liệu, Cú pháp kết hợp MySQL và PHP, Mệnh đề WHERE, Lệnh DELETE, Truy vấn INSERT, Truy vấn UPDATE, Ràng buộc (Constraint), Truy vấn DROP, Mệnh đề ORDER BY, Mệnh đề GROUP BY, Hàm xử lý, Sử dụng JOIN, Giá trị NULL, Transaction, Sử dụng Sequence, Nhập - Xuất cơ sở dữ liệu, Phương thức Backup và Recovery, Regexp, SQL Injection và cách sử dụng trong PHP theo các bước cơ bản.
[Thực hành] Chỉ mục trong MySql
- Tác giả: hocphp.net
- Đánh giá: 5 ⭐ ( 3635 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Chỉ mục (index) trong mysql - giải nghĩa và các lệnh cơ bản
- Tác giả: bizflycloud.vn
- Đánh giá: 4 ⭐ ( 1406 lượt đánh giá )
- Khớp với kết quả tìm kiếm: 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ỏ.
Chỉ mục trong SQL Server
- Tác giả: quantrimang.com
- Đánh giá: 5 ⭐ ( 9645 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Bài viết hướng dẫn cách tạo, đổi tên và xóa chỉ mục trong SQL Server.
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình