CHỈ SỐ CƠ SỞ DỮ LIỆU LÀ GÌ: Nó hoạt động như thế nào và nó làm gì?

chỉ mục cơ sở dữ liệu SQL tầm quan trọng của chỉ mục cơ sở dữ liệu các loại chỉ mục

Lập chỉ mục cơ sở dữ liệu SQL là quá trình phân loại và sắp xếp các bản ghi dữ liệu. Bất kỳ ai làm việc với cơ sở dữ liệu sẽ đánh giá cao việc tiết kiệm thời gian mà tính năng này mang lại khi tìm kiếm dữ liệu cụ thể. Trong bài viết này, chúng ta đã khám phá định nghĩa về chỉ mục cơ sở dữ liệu SQL, các loại và tầm quan trọng của chỉ mục cơ sở dữ liệu. Tận hưởng chuyến đi!

Chỉ mục cơ sở dữ liệu là gì?

Chỉ mục cơ sở dữ liệu là cấu trúc dữ liệu hỗ trợ tra cứu bảng nhanh hơn. Cơ sở dữ liệu sẽ vẫn hoạt động khi không có chỉ mục nhưng có thể mất nhiều thời gian hơn để các truy vấn trả về kết quả. Mỗi chỉ mục chứa một khóa bao gồm dữ liệu từ một hoặc nhiều cột trong bảng tương ứng của nó. Cơ sở dữ liệu có thể chọn sử dụng một chỉ mục để tăng tốc độ truy xuất bản ghi khi một truy vấn yêu cầu quyền truy cập vào một bảng có chỉ mục.

Khi người dùng nhập truy vấn, truy vấn thường thực hiện tìm kiếm tuyến tính trên mỗi hàng, kiểm tra xem có bất kỳ hàng nào chứa thông tin mong muốn hay không. Điều này được đơn giản hóa với việc sử dụng một chỉ mục, giúp tăng năng suất vì nó rút ngắn thời gian cần thiết để hoàn thành nhiệm vụ.

Các loại chỉ mục cơ sở dữ liệu

Có nhiều loại chỉ mục cơ sở dữ liệu khác nhau. Dưới đây là các loại chỉ mục cơ sở dữ liệu:

#1. Chỉ mục chính trong DBMS

Chỉ mục cơ sở dữ liệu chính là một tệp hai trường, được sắp xếp theo thứ tự, có độ dài cố định. Trường đầu tiên hoạt động như một khóa chính và trường thứ hai cho biết khối dữ liệu nào chứa thông tin đã chỉ định. Luôn có sự tương ứng một-một giữa các mục nhập chỉ mục cơ sở dữ liệu chính. Có hai loại Lập chỉ mục chính khác nhau được sử dụng trong DBMS.

  • Chỉ số dày đặc
  • Chỉ số thưa thớt

#2. Chỉ mục phụ trong DBMS

Khóa ứng viên trong hệ thống quản lý cơ sở dữ liệu (DBMS) là một trường có một giá trị duy nhất cho mỗi mục nhập. Đó là một loại chỉ mục không nhóm dữ liệu thành các cụm. Phương pháp lập chỉ mục cơ sở dữ liệu ở hai cấp độ này được sử dụng để giảm thiểu kích thước của cấp độ ánh xạ ban đầu. Do đó, một loạt các số nguyên được chọn cho giai đoạn ban đầu, trong khi bản thân kích thước ánh xạ vẫn cố định ở mức khiêm tốn.

Lập chỉ mục làm gì?

Việc sắp xếp một bảng chưa được sắp xếp theo thứ tự giúp cải thiện hiệu quả tìm kiếm thông qua các truy vấn được thực hiện bằng cách lập chỉ mục. Các bảng chưa được lập chỉ mục yêu cầu tìm kiếm tuyến tính trên các hàng vì truy vấn không thể biết thứ tự của các hàng và tự tối ưu hóa cho phù hợp. Điều đó có nghĩa là, các truy vấn sẽ cần đi qua từng hàng để tìm những hàng đáp ứng tiêu chí. Điều này có thể, như bạn có thể mong đợi, mất khá nhiều thời gian. 

Chỉ mục cơ sở dữ liệu hoạt động như thế nào?

Sẽ không thực tế khi mong đợi bảng cơ sở dữ liệu tự tổ chức lại bất cứ khi nào hoàn cảnh truy vấn thay đổi để cải thiện hiệu suất truy vấn. Trên thực tế, điều xảy ra là cơ sở dữ liệu xây dựng một cấu trúc dữ liệu để đáp lại chỉ số. B-Tree có lẽ là loại cấu trúc dữ liệu đang được sử dụng. B-Tree có một số lợi ích, nhưng thực tế là nó có thể được sắp xếp dễ dàng là điều quan trọng nhất đối với nhu cầu của chúng ta. Vì những điều đã nói ở trên, không có gì ngạc nhiên khi cấu trúc dữ liệu được sắp xếp cải thiện hiệu quả tìm kiếm của chúng tôi.

Lưu ý rằng khi chỉ mục cơ sở dữ liệu xây dựng cấu trúc cho một cột nhất định, nó chỉ lưu trữ thông tin về cột đó; không có cột nào khác được bao gồm. 

Bạn cũng có thể đọc:

Mẹo để tạo chỉ mục cơ sở dữ liệu

Sau đây là các mẹo để tạo chỉ mục cơ sở dữ liệu:

#1. Chỉ số Theo khối lượng công việc

Một chỉ mục cơ sở dữ liệu hiệu quả có thể được tạo ra để đáp ứng với khối lượng dữ liệu đang được xử lý. Thay vì quy trình tạo chỉ mục dựa trên số lượng bảng bạn có (điều này có thể gây khó khăn hơn cho việc truy cập), hãy tập trung vào việc tạo chỉ mục cơ sở dữ liệu hỗ trợ tìm kiếm các thuật ngữ nhất định.

#2. Bạn nên tận dụng Predicates

Tạo một chỉ mục cơ sở dữ liệu với các vị từ là một tùy chọn khả thi khác. Vị ngữ là một loại biểu thức điều kiện được sử dụng để xác định giá trị thực của một câu lệnh. Ngoài việc đơn giản hóa việc phát triển chỉ mục cơ sở dữ liệu, điều này giúp người dùng đưa ra các lựa chọn có hiểu biết về dữ liệu cần truy xuất.

Để tìm các công cụ và vật tư cần thiết cho một dự án xây dựng, cơ sở dữ liệu được thiết kế cho ngành đó có thể sử dụng các vị từ trong chỉ mục của nó. Một nhân viên có thể sử dụng nó để xác minh xem các vật liệu tương tự có được sử dụng trong một dự án tương tự vài tháng trước đó hay không.

Một chỉ mục phù hợp với các truy vấn SQL chỉ mục cơ sở dữ liệu phổ biến nhất cũng thường được xây dựng để đạt hiệu quả tối ưu. Bao gồm trong phần này có thể là danh sách tóm tắt tất cả các truy vấn SQL chỉ mục cơ sở dữ liệu có thể có và tần suất sử dụng ước tính của chúng, với những truy vấn quan trọng nhất được làm nổi bật.

Điều này có thể hữu ích khi trường học phải tiến hành tìm kiếm cơ sở dữ liệu tiêu chuẩn, chẳng hạn như tìm ra đứa trẻ nào được gọi đến nhà nhiều nhất hoặc những đứa trẻ vắng mặt trong một thời gian dài vì bệnh. Điều này rất hữu ích trong trường hợp khẩn cấp, vì nó tạo điều kiện thuận lợi cho việc truy xuất thông tin liên lạc của phụ huynh một cách nhanh chóng và dễ dàng.

#4. Tránh nhu cầu sắp xếp bằng cách lập chỉ mục

Tạo một chỉ mục không yêu cầu sắp xếp có thể tăng tốc khả năng truy xuất dữ liệu mong muốn của truy vấn. Người dùng cơ sở dữ liệu thường có thể sắp xếp các bản ghi theo cách thủ công bằng cách sử dụng các mệnh đề 'Nhóm theo' và 'Sắp xếp theo'. Bạn có thể tối ưu hóa tốc độ cơ sở dữ liệu bằng cách tạo chỉ mục trên các cột được sử dụng bởi hai loại này. Vì không cần sắp xếp bản ghi nên các truy vấn có thể được tối ưu hóa hơn nữa.

#5. Tạo các chỉ mục có một không hai

Nhân viên thường được giao nhiệm vụ tạo một số chỉ mục độc nhất vô nhị khi phát triển cơ sở dữ liệu hiệu quả. Điều này rất quan trọng vì nó ngăn ngừa hỏng dữ liệu bằng cách loại bỏ khả năng trùng lặp trong các cột của bảng. Các ràng buộc hoặc các quy tắc mà dữ liệu trong một bảng luôn phải tuân theo, được đại đa số các hệ thống cơ sở dữ liệu sử dụng để tạo các chỉ mục duy nhất. Khóa chính cũng được sử dụng để tạo thuận lợi cho việc xác định dữ liệu trong một bảng.

#6. Xem xét khóa ngoại

Một nhân viên có thể tối ưu hóa hiệu suất của cơ sở dữ liệu bằng cách tạo các chỉ mục liên quan đến từng khóa ngoại được cơ sở dữ liệu sử dụng. Khóa ngoại là một nhóm các cột trong một cơ sở dữ liệu cung cấp quyền truy cập vào các bảng trong cơ sở dữ liệu khác. Các chỉ mục này không bắt buộc trong hầu hết các hệ thống cơ sở dữ liệu nhưng dù sao cũng có thể tăng năng suất. Cơ sở dữ liệu có thể không chứa tất cả thông tin mà nhân viên cần, nhưng khóa này có thể dẫn họ đến kết quả phù hợp trong cơ sở dữ liệu khác.

#7. Chèn các cột dành riêng cho việc sử dụng chỉ mục cơ sở dữ liệu

Một nhân viên có thể thấy hữu ích khi thêm một số cột chỉ mục cơ sở dữ liệu vào cơ sở dữ liệu của họ trong một số trường hợp nhất định. Giờ đây, một công nhân có thể nhanh chóng truy xuất thông tin chỉ có trong chỉ mục. Điều này là để mọi truy vấn do người dùng nhập sẽ chỉ phải tìm kiếm trong các cột chỉ mục mới được thêm này. Điều này đẩy nhanh quá trình cung cấp dữ liệu cụ thể mà nhân viên cần. Nhưng cần lưu ý rằng nhân viên bây giờ phải kiểm tra các truy vấn khác để xem liệu các cột mới có ảnh hưởng đến khả năng thực hiện công việc của họ hay không.

#số 8. Tránh giới hạn về số lượng chỉ mục

Không nên hạn chế số lượng chỉ mục trong cơ sở dữ liệu khi được tạo. Để tối ưu hóa cơ sở dữ liệu đúng cách, nên có càng nhiều chỉ mục càng tốt vì mỗi chỉ mục hoạt động như một trình tối ưu hóa giúp tăng tốc quá trình truy xuất dữ liệu. Điều đáng chú ý là điều này không chỉ hữu ích cho người được hỏi; ở hầu hết các nơi làm việc, cơ sở dữ liệu và thông tin chứa trong đó được chia sẻ với nhân viên. Điều này có nghĩa là nó có khả năng tăng sản lượng trong toàn tổ chức.

#9. Kiểm tra xem có nhiều hàm ý sửa đổi dữ liệu không

Để tiết kiệm thời gian, nhân viên có thể bỏ qua việc nhập dữ liệu theo cách thủ công. Họ có thể đạt được điều này bằng cách suy nghĩ về kết quả của bất kỳ thay đổi nào được thực hiện đối với dữ liệu. Một số tùy chọn tồn tại để thực hiện điều này. Ví dụ, một nhân viên có thể xem các chỉ mục của bảng. Có khả năng là việc thêm một chỉ mục cơ sở dữ liệu khác sẽ không ảnh hưởng đáng kể đến hiệu suất nếu đã có nhiều chỉ mục hơn cột. Một nhân viên cũng có thể kiểm tra thời gian thực hiện của một truy vấn bằng cách chạy truy vấn đó trên bàn. Giá trị của việc tạo chỉ mục cơ sở dữ liệu phụ thuộc vào thời gian thực hiện truy vấn.

Nếu một nhân viên cần thêm hoặc xóa dữ liệu để tạo chỉ mục của riêng họ, họ có thể làm như vậy sau khi xem xét tác động đối với phần còn lại của cơ sở dữ liệu. Chẳng hạn, sẽ thật ngu ngốc nếu loại bỏ các số điện thoại kết nối công ty với một nhân viên cụ thể nếu cơ sở dữ liệu chứa đầy chi tiết liên hệ của các nhà cung cấp.

Cách chỉ mục cơ sở dữ liệu hoạt động bên trong

Chỉ mục cơ sở dữ liệu SQL được cấu trúc bên trong dưới dạng cây. Các chỉ mục cơ sở dữ liệu được mô tả bằng đồ họa dưới dạng cây, với các bản ghi riêng lẻ đại diện cho các lá. Nhiều nút được kết nối bởi con trỏ tạo nên cấu trúc cây chỉ mục của cơ sở dữ liệu.

Khi chạy lệnh CREATE INDEX, một cây chỉ mục sẽ được tạo. Một thuật toán trong chương trình cơ sở dữ liệu chịu trách nhiệm tạo cây chỉ mục. Thủ tục xây dựng chỉ mục bắt đầu bằng bước sắp xếp các bản ghi theo khóa chỉ mục. Khi tất cả các nút trong chỉ mục cây đã được tạo, cấu trúc được xây dựng trên chúng. Khi có nhiều bản ghi trong cơ sở dữ liệu, việc tạo cây chỉ mục có thể tốn nhiều thời gian.

Để tìm một hàng cụ thể trong bảng, chúng ta phải bắt đầu tìm kiếm chỉ mục tại nút lá. Tại mỗi ngã ba đường, phải lựa chọn con đường nào sẽ đi. Điều này đòi hỏi phải phân tích chuyên sâu các tiêu chí tìm kiếm và các giá trị nằm trong mỗi nhánh. Lấy trường hợp tìm kiếm số 12 trong cây hai nhánh làm minh họa rất cơ bản. Các chữ số 0–10 nằm ở Nhánh X, trong khi 11–20 nằm ở Nhánh Y. Vì 12 lớn hơn 11 nên bạn nên xem ở đó.

Cây B là một ví dụ về cây chỉ mục chuyên biệt. Cây cân bằng hoặc cây B có cùng số lượng nút từ gốc đến mỗi nút lá.

Cách chỉ mục cơ sở dữ liệu hoạt động dưới mui xe

Chỉ mục chỉ là một cấu trúc dữ liệu cung cấp quyền truy cập dễ dàng vào thông tin liên quan bằng cách lưu trữ các tham chiếu đến các mục riêng lẻ. Trong trường hợp không có chỉ mục, các hàng dữ liệu trong cơ sở dữ liệu thường được lưu giữ trong một “đống” không có tổ chức. Cả Microsoft SQL Server và Cơ sở dữ liệu Azure SQL đều có một công tắc mà bạn có thể sử dụng để bật hoặc tắt tính năng này.

Trong thực tế, dữ liệu hiếm khi được giữ ở trạng thái hoàn toàn không có cấu trúc. Các khóa chính, trong MySQL có thể giống như các chỉ mục, thường được sử dụng thay thế; chúng có thể ở dạng một số nguyên tăng tự động. Tuy nhiên, hiệu quả sắp xếp "nhị phân" (với các giá trị duy nhất) bị hạn chế đối với truy vấn lọc trên cột được sắp xếp, vì chỉ một cột có thể được sử dụng để sắp xếp dữ liệu. Một bảng có chỉ mục có thể được tìm kiếm hiệu quả bằng cách sử dụng tìm kiếm nhị phân vì nó có thể được sắp xếp theo nhiều cột.

Khi bạn lập chỉ mục một cột, bạn thực sự tạo một bảng mới có hai cột: cột bạn đã lập chỉ mục và một con trỏ tới vị trí của mục mà bạn đang tìm kiếm. Chỉ mục sẽ có cùng chiều dài với bảng ban đầu, nhưng chiều rộng của nó sẽ nhỏ hơn đáng kể, yêu cầu ít khối đĩa hơn để lưu trữ và duyệt qua. Trong MySQL, con trỏ có xu hướng nhỏ hơn 5 byte. Đối với những người quan tâm đến việc tìm hiểu sâu hơn, bài đăng Stack Overflow “huyền thoại” được tham chiếu ở trên giải thích số học đằng sau số lượng khối cần thiết để lưu trữ.

Trừ khi bạn đã xây dựng chúng từ đầu, cơ sở dữ liệu hiện tại của bạn có thể có nhiều chỉ mục.

Tầm quan trọng của một chỉ mục cơ sở dữ liệu

Tầm quan trọng của chỉ mục cơ sở dữ liệu không bao giờ có thể bị bỏ qua, nhưng chúng phát sinh chi phí dưới dạng ghi thêm và cần thêm dung lượng lưu trữ để luôn cập nhật bản sao dữ liệu trùng lặp. Một tầm quan trọng khác của chỉ mục cơ sở dữ liệu là chúng yêu cầu bảo trì thường xuyên để đảm bảo hiệu suất tối ưu. Tuy nhiên, lợi ích của việc sử dụng các chỉ mục lớn hơn nhiều so với sự bất tiện nhỏ khi bảo trì chúng. Các chỉ mục cần được bảo trì thường xuyên để hoạt động bình thường. Việc xây dựng lại chỉ mục, tổ chức lại và kiểm tra sự phân mảnh thuộc danh mục nhiệm vụ này.

Chi phí để có các chỉ số

Giống như hầu hết những thứ khác trong cuộc sống, chỉ số tốn tiền. Tất cả các chỉ mục trên một bảng phải được gia hạn nếu bất kỳ hàng nào trong bảng đó bị thay đổi (thông qua CHÈN, CẬP NHẬT hoặc XÓA). Những sửa đổi này tốn thời gian và khi có nhiều chỉ mục trong cơ sở dữ liệu, hiệu suất của quy trình chỉnh sửa nhiều bảng có thể bị ảnh hưởng.

Chúng ta phải cân nhắc giữa lợi ích và chi phí của việc xây dựng một chỉ số trước khi tiến hành. Chúng ta có thể dự đoán sự gia tăng đáng kể về hiệu quả không? Đây có phải là một bảng thống kê hay nó đã được thao túng rộng rãi? Chúng ta có thể sống với sự sụt giảm hiệu suất trong khi điều chỉnh bảng không? Kết quả của cuộc kiểm tra này sẽ cho chúng ta biết có cần lập chỉ mục hay không. Một số cơ sở dữ liệu thậm chí có khả năng tự động xây dựng và loại bỏ các chỉ mục khi cần thiết.

Những điều không nên quên về chỉ mục cơ sở dữ liệu

Sau đây là những điều không được quên về chỉ mục cơ sở dữ liệu:

  • Lập chỉ mục liên quan đến việc bổ sung cấu trúc dữ liệu với các cột tiêu chí tìm kiếm và một con trỏ.
  • Con trỏ là vị trí của hàng trong đĩa nhớ chứa dữ liệu còn lại.
  • Sắp xếp cấu trúc dữ liệu chỉ mục cải thiện hiệu suất truy vấn.
  • Truy vấn định vị hàng mong muốn trong chỉ mục; một khi được định vị, chỉ mục cung cấp một tham chiếu đến phần còn lại của dữ liệu.
  • Với chỉ mục, truy vấn chỉ cần xem bốn hàng thay vì mười bảy.

Chỉ số cho người giả là gì?

Chỉ số là một giá trị số được sử dụng làm thước đo. Nó là một thuật ngữ được sử dụng để mô tả một phân tích định lượng về sự chuyển động của thị trường chứng khoán. Mỗi chỉ số thị trường chứng khoán và chỉ số thị trường trái phiếu trong thị trường tài chính đều bao gồm một danh mục chứng khoán hư cấu nhằm thay thế cho toàn bộ thị trường hoặc một tập hợp con của nó.

Mục đích của việc lập chỉ mục là gì?

Lập chỉ mục là một công cụ thống kê để theo dõi các chỉ số kinh tế như lạm phát, thất nghiệp, tăng trưởng GDP, năng suất và lợi nhuận của thị trường chứng khoán.

Kết luận:

Một chỉ mục hiệu quả hơn nhiều so với việc nhân viên liên tục sắp xếp lại cơ sở dữ liệu để đáp ứng các truy vấn mới. Mặt khác, chỉ mục tạo hệ thống phân cấp cơ sở dữ liệu nội bộ của riêng nó. Ví dụ, một chỉ mục cơ sở dữ liệu có thể sử dụng cấu trúc B-Tree. Ngoài ra, các nút có hai hoặc nhiều nhánh được hỗ trợ, do đó, công nhân có thể mở rộng ra ngoài các tìm kiếm nhị phân đơn giản.

dự án

Bình luận

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *

Bạn cũng có thể thích