MARIADB
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Tìm hiểu Indexes và Statistics Tablestrong MariaDB

Trong quản lý cơ sở dữ liệu, việc tối ưu hóa hiệu suất truy vấn đóng vai trò quan trọng trong việc xử lý các tập dữ liệu lớn một cách nhanh chóng và hiệu quả. Chỉ mục (Indexes) là một công cụ mạnh mẽ hỗ trợ tăng tốc quá trình truy xuất dữ liệu từ bảng, bằng cách tạo ra các mục nhập tương ứng với giá trị trong các cột được lập indexe. Với khả năng tổ chức và sắp xếp dữ liệu hiệu quả, indexe không chỉ giúp cải thiện tốc độ tìm kiếm mà còn góp phần nâng cao hiệu suất tổng thể của hệ thống cơ sở dữ liệu.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Các loại indexe trong MariaDB

MariaDB cung cấp bốn loại indexe:

  • Primary

    Đại diện duy nhất cho tất cả các bản ghi. Indexe chính đảm bảo mỗi bản ghi trong bảng có một giá trị duy nhất trong cột được indexe.

    Bài viết này được đăng tại [free tuts .net]

  • Unique

    Đại diện cho nhiều bản ghi nhưng đảm bảo các giá trị trong cột được lập indexe không bị trùng lặp.

  • Plain

    Loại indexe thông thường, không có bất kỳ ràng buộc nào như trên.

  • Full-Text

    Hỗ trợ tìm kiếm văn bản toàn bộ, cung cấp nhiều tùy chọn trong việc tìm kiếm văn bản.

Lưu ý: Trong ngữ cảnh này, thuật ngữ "key" và "index" được sử dụng tương đương nhau.

Lợi ích và nhược điểm của indexe

  • Lợi ích:
    Indexe tăng tốc độ truy vấn (như lệnh SELECT) nhờ khả năng tìm kiếm nhanh và tổ chức bản ghi hiệu quả.

  • Nhược điểm:
    Indexe có thể làm chậm các thao tác như chèn (INSERT) hoặc cập nhật (UPDATE), vì phải đồng thời thao tác trên cả bảng và indexe.

Tạo indexe trong MariaDB

Có thể tạo indexe bằng lệnh CREATE TABLE...INDEX hoặc CREATE INDEX. Trong thực tế, sử dụng CREATE INDEX được xem là tối ưu về mặt dễ đọc, dễ duy trì, và tuân theo các chuẩn lập trình tốt.

Cú pháp chung:

CREATE [UNIQUE | FULLTEXT | ...] INDEX index_name ON table_name (column);

Ví dụ:

CREATE UNIQUE INDEX top_sellers ON products_tbl (product);

Xóa indexe trong MariaDB

Có thể xóa indexe bằng lệnh DROP INDEX hoặc ALTER TABLE...DROP INDEX. Việc sử dụng DROP INDEX thường được khuyến nghị để dễ duy trì.

Cú pháp chung:

DROP INDEX index_name ON table_name;

Ví dụ:

DROP INDEX top_sellers ON product_tbl;

Đổi tên indexe trong MariaDB

Việc đổi tên indexe cần sử dụng lệnh ALTER TABLE. Quy trình bao gồm việc xóa indexe cũ và thêm indexe mới.

Cú pháp:

ALTER TABLE table_name DROP INDEX index_name, ADD INDEX new_index_name;

Ví dụ:

ALTER TABLE products_tbl DROP INDEX top_sellers, ADD INDEX top_2016sellers;

Quản lý indexe

Sử dụng lệnh SHOW INDEX để kiểm tra và quản lý các indexe liên kết với một bảng cụ thể.

Ví dụ:

SHOW INDEX FROM products_tbl\G
  • Dấu \G cho phép hiển thị kết quả theo định dạng dọc (vertical format) để dễ đọc.

Bảng thống kê (Statistics Tables)

  • Chức năng của indexe đối với tối ưu hóa truy vấn:
    Indexe không chỉ giúp truy cập bản ghi nhanh hơn mà còn cung cấp thông tin thống kê cho cơ sở dữ liệu.

  • Thách thức:
    Nhiều người dùng cảm thấy việc duy trì indexe khá phức tạp.

  • Cải tiến trong MariaDB 10.0:
    MariaDB đã giới thiệu bảng thống kê độc lập với công cụ lưu trữ (storage engine), cho phép tính toán thống kê dữ liệu cho mọi bảng trong mọi engine lưu trữ, thậm chí cả các cột chưa được lập indexe.

Kết bài

Indexe là một công cụ mạnh mẽ để tối ưu hóa truy vấn trong MariaDB, đặc biệt là khi làm việc với các tập dữ liệu lớn. Tuy nhiên, người dùng cần cân nhắc giữa hiệu suất truy xuất và chi phí duy trì indexe khi thêm, sửa đổi hoặc xóa dữ liệu. Đồng thời, bảng thống kê cung cấp thêm khả năng đánh giá và phân tích, giúp cải thiện hiệu quả quản lý cơ sở dữ liệu.

Cùng chuyên mục:

Lệnh ALTER trong MariaDB

Lệnh ALTER trong MariaDB

Giao dịch (Transactions) trong MariaDB

Giao dịch (Transactions) trong MariaDB

Biểu thức chính quy (Regular Expression) trong MariaDB

Biểu thức chính quy (Regular Expression) trong MariaDB

Giá trị NULL trong MariaDB

Giá trị NULL trong MariaDB

Mệnh đề JOIN trong MariaDB

Mệnh đề JOIN trong MariaDB

Mệnh đề ORDER BY trong MariaDB

Mệnh đề ORDER BY trong MariaDB

Mệnh đề LIKE trong MariaDB

Mệnh đề LIKE trong MariaDB

Tìm hiểu lệnh DELETE trong MariaDB

Tìm hiểu lệnh DELETE trong MariaDB

Tìm hiểu câu lệnh UPDATE trong MariaDB

Tìm hiểu câu lệnh UPDATE trong MariaDB

Mệnh đề WHERE trong MariaDB

Mệnh đề WHERE trong MariaDB

Câu lệnh SELECT (Select Query) trong MariaDB

Câu lệnh SELECT (Select Query) trong MariaDB

Lệnh chèn dữ liệu (Insert Query) trong MariaDB

Lệnh chèn dữ liệu (Insert Query) trong MariaDB

Tìm hiểu xóa bảng trong MariaDB

Tìm hiểu xóa bảng trong MariaDB

Tạo bảng (Create Tables) trong MariaDB

Tạo bảng (Create Tables) trong MariaDB

Các loại dữ liệu (Data Types) trong MariaDB

Các loại dữ liệu (Data Types) trong MariaDB

Select Database trong MariaDB

Select Database trong MariaDB

Xóa cơ sở dữ liệu trong MariaDB

Xóa cơ sở dữ liệu trong MariaDB

Tạo cơ sở dữ liệu trong MariaDB

Tạo cơ sở dữ liệu trong MariaDB

Cách kết nối trong MariaDB

Cách kết nối trong MariaDB

Cú pháp PHP trong  MariaDB

Cú pháp PHP trong MariaDB

Top