Home > SQL Server > Giới thiệu về Index trong SQL

Giới thiệu về Index trong SQL

Đánh index là một cách rất hữu hiệu để tăng hiệu năng thực hiện các câu lệnh SQL. Bài viết ngắn này sẽ giới thiệu 1 số khái niệm cơ bản về Index trong SQL.

Index là gì?

Ví dụ thực tế :  Bạn có 1 cuốn sách dạy nấu ăn. Bạn thích ăn bún bò Huế, mới nghĩ đến thôi mà đã nuốt nước miếng ừng ực rồi ( hix ! ) . Không chịu được nữa, bạn liền lấy bí kíp ra để xem cách làm thế nào . Bạn có 2 lựa chọn :

  1. Lật từng trang sách để tìm đến trang có Bún bò Huế
  2. Lật đến trang mục lục của cuốn sách, tìm xem Bún bò Huế ở trang nào và lật đến trang đó.   

Lựa chọn 2 chắc chắn nhanh và hiệu quả hơn lựa chọn 1. ( Bí kíp của bạn càng dày thì sự khác biệt càng rõ rệt ).

Index trong SQL cũng giống như mục lục của những quyển sách, giúp SQL Server xác định chính xác nơi dữ liệu được lưu trữ.

Lợi ích của Index:

  • Là 1 trong những cách tốt nhất để giảm hoạt động của đĩa cứng (disk I/O)  và logical reads
  • Cho phép SQL Server tìm thấy dữ liệu mà không cần phải quét toàn bộ Table

Nhược điểm của việc sử dụng Index :

  • Việc tạo Index đôi khi rất tốn thời gian. Đối với project CSDL nhỏ, vừa thì ko đáng kể nhưng với CSDL lớn thì việc này là cực kì lâu.
  • Do index là tạo 1 cấu trúc bảng –> dẫn đến tốn tài nguyên
  • Nếu có sự thay đổi về dữ liệu thì index cũng được update theo.
Nói vậy chứ thực tế trong hầu hết các trường hợp, việc sử dụng index vẫn là lựa chọn hàng đầu.

Các loại Index

2 loại Index chính thường được dùng là Clustered Index và Nonclustered Index.

Clustered Index : mặc định khi tạo khóa chính (Primary key) cho 1 table nào đó, tức là bạn đã tạo 1 Clustered Index. Một bảng mà không có Clustered Index được gọi là 1 Heap table.

Để rõ hơn về Heap Table và Clustered Table, bạn có thể tham kháo link sau :
http://www.mssqltips.com/sqlservertip/1254/clustered-tables-vs-heap-tables/

Non-Clustered Index : có thể có các biến thể như : Covering Index, Filtered Index, …

Ngoài ra còn có các loại Index khác như Full Text Index, Spatial Index, XML Index.

Số lượng Index tối đa trong 1 bảng :

Điều này phụ thuộc vào phiên bản SQL Server mà bạn sử dụng :

Trên đây là 1 số khái niệm cơ bản về Index, để khai thác tốt sức mạnh của Index, bạn cần hiểu thêm nhiều kiến thức cần thiết nữa.

P/S: Nếu bạn chưa biết cách nấu món Bún bò Huế, hãy tham khảo tại đây

Advertisements
Categories: SQL Server Tags:
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: