1. Index là gì ?

Index (hay chỉ mục) là một cấu trúc dữ liệu để tăng hiệu suất truy vấn của cơ sở dữ liệu. Index được cho phép cơ sở tài liệu thực hiện một số câu truy vấn vấn có điều kiện nhanh hơn so cùng với thông thường. Tuy nhiên index cũng rất được lưu trên bộ nhớ lưu trữ và tiêu hao không gian bộ nhớ lưu trữ và thời gian để tạo, cập nhật index nên những khi sử dụng index đề nghị phải để ý đến kĩ.

Bạn đang xem: Cách hoạt động của index trong sql

2. Khi nào sử dụng index ?

Index giúp tăng vận tốc truy vấn của một trong những câu lệnh select có điều kiện vì vậy nó sệt biệt hữu ích khi câu lệnh truy tìm vấn được sử dụng thường xuyên (hoặc cột được sinh sản index hay được truy nã vấn) và số lượng bạn dạng ghi lớn.

Khó nhằm xác định bao giờ sử dụng index, nó nhờ vào nhiều vào các bài toán thực tế mặc dù có một số trong những quy luật thường bắt gặp khi lựa chọn một cột (hoặc tập những cột) để sinh sản index:

Khóa và những cột có mức giá trị độc đáo (unique): Database thường xuyên sẽ auto tạo index cho những cột này đề xuất để tranh việc trùng lặp và tiêu tốn bộ nhớ ta tránh việc tạo thêm index mang đến chúng.Tần suất được sử dụng: Khi tần suất sử dụng câu tầm nã vấn càng bự thì việc tạo index để giúp làm giảm càng nhiều thời hạn truy vấn (tính tổng).Số lượng bản ghi của bảng: Số lượng bạn dạng ghi của bảng càng nhiều thì vận tốc truy vấn vẫn càng giảm ưu thế của việc thực hiện index trên những bảng đó lại càng rõ ràng so với rất nhiều bảng có số lượng bạn dạng ghi ít. Đặc biệt đối với trường thích hợp một bảng có ít bản ghi (100 - vài nghìn) ta tránh việc tạo chỉ mục mang đến chúng.Dữ liệu của bảng lớn mạnh nhanh: Index sẽ tự động hóa cập nhật khi gồm một phiên bản ghi được thêm vào các đại lý dữ liệu, vị vậy khi tấn công chỉ mục cho một bảng nó đã làm ngưng trệ các hành động thêm sửa xóa bản ghi. Vậy đề xuất một bảng liên tiếp được update nên tất cả ít index hơn một bảng thi thoảng khi cập nhật.Không gian cỗ nhớ: Khi chế tác index sẽ sử dụng chính không gian bộ lưu trữ của cơ sở dữ liệu nên lúc cơ sở tài liệu có kích thước lớn ta yêu cầu lựa chọn cẩn thận trường như thế nào sẽ áp dụng làm index.Dữ liệu có phong phú và đa dạng giá trị: Index được sản xuất dựa trên các giá trị vào cột nhưng nó trỏ tới ví dụ như cột index được sinh sản chỉ tất cả 3 quý hiếm A, B, C thì index được tạo sẽ sở hữu giá trị nhỏ dại hơn các so cùng với cột bao gồm dải quý giá trải lâu năm cả bảng chữ cái. Index bên trên cột bao gồm ít cực hiếm ví dụ cột sex sẽ không làm tăng nhiều tốc độ truy vấn tuy nhiên đối với những cột có rất nhiều giá trị cá biệt như cột name sẽ làm tăng tốc độ truy vấn đáng kể.3. Ưu điểm của việc thực hiện index.Thường sẽ làm tăng tính năng truy vấn khi đk rơi vào các cột được tiến công chỉ mục.Giúp ta rất có thể truy vấn dữ liệu nhanh hơn.Có thể được sử dụng để bố trí dữ liệu.Các chỉ mục độc nhất bảo vệ tính tuyệt nhất của trường trong đại lý dữ liệu.4. Nhược điểm của thực hiện index.Làm giảm hiệu năng những câu lệnh insert, update ,delete.Chiếm dụng bộ nhớ.5. Các tạo index vào Postgre
SQL.

Để tạo nên chỉ mục vào Postgre
SQL ta cần sử dụng câu lệnh:

CREATE INDEX ten_index ON

(COLUMN1, COLUMN2, ...)

Nếu mong tạo chỉ mục độc nhất (không chất nhận được chèn tài liệu trùng lặp nào vào bảng):

CREATE quality INDEX ten_index ON

(COLUMN1, COLUMN2, …)

Khi không bắt buộc dùng index nữa hoàn toàn có thể xóa theo cú pháp:

DROP INDEX ten_index

Ngoài ra còn các lựa chọn khi tạo nên index, để biết thêm các bạn tham khảo link: https://www.postgresql.org/docs/11/sql-createindex.html

Giả sử bạn có một bảng dữ liệu với 1000 tín đồ và bạn có nhu cầu tìm người mang tên là "Thanh". Chế độ đánh index sẽ vận động như sau:

Khi các bạn tạo index mang đến cột "name", thương hiệu của mỗi cá nhân sẽ được đánh số từ 0 mang đến 999 theo đồ vật tự abc. Ví dụ: "An" rất có thể có số index 0, "Anh" bao gồm số index 1, và liên tục như vậy. Bắt lại, danh sách tên sẽ tiến hành sắp xếp theo lắp thêm tự abc.

Khi bạn đánh index cùng nhập truy vấn "SELECT ... WHERE name = "Thanh"", phương pháp index sẽ được sử dụng để về tối ưu hóa việc tìm kiếm kiếm. Cầm vì so sánh từng tên một, nó sẽ bắt đầu từ giữa danh sách và hỏi: "Tên ở trong phần giữa có to hơn hay nhỏ hơn "Thanh"?" Nếu khủng hơn, nó đang tìm nghỉ ngơi nửa vùng sau của danh sách; nếu bé dại hơn, nó đang tìm sinh sống nửa phía trước. Quá trình này lặp lại cho đến khi tìm thấy tên "Thanh" hoặc đạt tới mức số lần so sánh tối đa, thường là 10 lần.

Khi con số người càng nhiều, vẻ ngoài index giúp tìm kiếm cấp tốc hơn. Ví dụ, nếu như bạn có một triệu người, chỉ cần tối đa trăng tròn lần đối chiếu để tìm kiếm ra tín đồ tên "Nam", trong những lúc nếu không có index, bạn có thể phải đối chiếu tới 999.999 lần.

Các loại index trong SQL

Trong My
SQL, có ba kiểu index chủ yếu được sử dụng để tối ưu hóa bài toán truy xuất dữ liệu: B-Tree, Hash, cùng R-Tree index. Trong nội dung bài viết này, chúng ta sẽ triệu tập vào đối chiếu hai hình dạng index thịnh hành nhất: B-Tree cùng Hash.

B-Tree IndexTổ chức dữ liệu: tài liệu index vào B-Tree được tổ chức dưới dạng cây, với root, branch và leaf nodes. Giá chỉ trị của những node được tổ chức theo vật dụng tự tăng dần đều từ trái sang phải.Quy tắc tìm kiếm kiếm: Khi truy tìm vấn dữ liệu, B-Tree thực hiện quy trình tìm tìm đệ quy, bắt đầu từ root node với đi sâu vào những branch cùng leaf nodes cho đến khi tìm thấy dữ liệu vừa lòng điều kiện truy vấn.Sử dụng: B-Tree index hay được sử dụng cho những cột trong bảng khi buộc phải tìm kiếm dữ liệu trong một khoảng giá trị độc nhất vô nhị định, ví dụ như tìm kiếm sản phẩm có mức giá từ 100.000 - 500.000 đồng.

*

Hash IndexTổ chức dữ liệu: Hash index tổ chức dữ liệu bên dưới dạng cặp Key - Value links với nhau.

Xem thêm: File pdf là gì? cách copy text pdf s, adobe reader file pdf là gì

Sử dụng toán tử: Hash index hay chỉ được sử dụng cho những toán tử đối chiếu bằng (=) hoặc không giống (), không tương thích cho những toán tử so sánh khoảng quý giá như ()Tối ưu hóa: Không thể về tối ưu hóa sắp xếp dữ liệu theo vật dụng tự bằng cách sử dụng Hash index, với nó không hỗ trợ các truy tìm vấn bố trí dữ liệu theo thứ tự.Tốc độ: Hash index hay có vận tốc nhanh rộng so với B-Tree index.

*

Khi tuyển lựa giữa B-Tree với Hash index, ngoài mục tiêu sử dụng index, bạn cũng cần xem xét xem Storage Engine mà ai đang sử dụng có cung cấp loại index nào. Ví dụ, My
ISAM, Inno
DB cùng Archive chỉ cung cấp B-Tree index, trong khi My
ISAM cung cấp cả hai các loại index.

Hướng dẫn giải pháp đánh index trong my
SQL

Tạo index bên trên một bảng

Để chế tạo index bên trên một bảng, bạn có thể sử dụng lệnh CREATE unique INDEX. Quality index không chỉ là giúp tăng năng suất mà còn bảo đảm tính trọn vẹn của dữ liệu. Unique index không chất nhận được các phiên bản sao cực hiếm trong bảng.


*
Cách tạo ra Index vào SQL Server

Nếu bạn có nhu cầu tạo index cho các cột cụ thể trong bảng, chúng ta có thể chỉ định chúng trong lệnh như sau:

*

Lưu ý: Nếu không chỉ là rõ tên các cột vào lệnh, My
SQL vẫn mặc định sinh sản index đến primary key hoặc các ràng buộc tuyệt nhất trong bảng.

Thêm index vào bảng

Để thêm index vào bảng, chúng ta cũng có thể sử dụng những lệnh ALTER TABLE. Dưới đó là các ví dụ áp dụng index trong SQL:

Thêm primary key mang đến bảng:

*

Thêm index tuyệt nhất nhưng rất có thể null:

*

Thêm index cho bảng, hoàn toàn có thể có các giá trị trùng lặp:

*

Thêm index đặc biệt quan trọng cho việc tìm kiếm kiếm văn bản:

*

Xóa index

Để xóa một index, chúng ta có thể sử dụng lệnh DROP INDEX. Tuy nhiên, cần cẩn trọng với bài toán xóa index vị điều này rất có thể làm chậm năng suất hoặc không cải thiện.

*

Lợi ích khi tiến công index trong SQL

Lợi ích chính của câu hỏi đánh index là nó có thể làm tăng vận tốc truy vấn dữ liệu xứng đáng kể, nhất là đối với những truy vấn phức hợp liên quan mang đến nhiều đk lọc hoặc sắp tới xếp. Khi database cần truy cập dữ liệu dựa trên một giá trị gắng thể, việc sử dụng index góp nó hoàn toàn có thể nhanh giường xác xác định trí của tài liệu đó vào bảng mà không cần phải quét qua từng hàng một.

Ngoài ra, vấn đề đánh index cũng có thể giúp giảm thiểu tài nguyên sử dụng, ví dụ như CPU cùng RAM, vì chưng database không cần thiết phải tốn nhiều thời hạn và sức lực để quét qua toàn bộ bảng dữ liệu. Điều này đặc biệt quan trọng quan trọng so với các khối hệ thống database bao gồm lưu lượng truy cập cao hoặc đề nghị xử lý những truy vấn phức tạp.

*

Một số chú ý khi thực hiện index trong my
SQL

Mặc dù index giúp nâng cấp hiệu suất của các đại lý dữ liệu, tuy thế đôi khi, việc sử dụng chúng hoàn toàn có thể gây ra những vụ việc không ước ao muốn. Dưới đó là một số vụ việc mà các chuyên viên SEO khuyên chúng ta nên lưu ý:

Không nên sử dụng chỉ mục trong những bảng nhỏ.Nếu bảng của bạn thường xuyên phải cập nhật hoặc chèn dữ liệu, việc sử dụng chỉ mục rất có thể làm chậm công suất của các đại lý dữ liệu.Các chỉ mục tránh việc được áp dụng trên các cột có số lượng lớn quý giá null, vày điều này hoàn toàn có thể làm giảm hiệu suất của các đại lý dữ liệu.Nếu những cột vào bảng của người sử dụng thường xuyên biến đổi giá trị, việc thực hiện chỉ mục rất có thể không hiệu quả và dẫn đến sự chậm chạp trong các thao tác làm việc cập nhật.

Những xem xét này khiến cho bạn đưa ra ra quyết định có nên thực hiện chỉ mục trong đại lý dữ liệu của chính bản thân mình một cách công dụng và hợp lý.

Với những tin tức trên, chúng ta đã chũm được công việc cơ bản để tấn công index trong SQL. Hãy áp dụng ngay những kiến thức này để buổi tối ưu hóa công suất database của bạn. Nếu như khách hàng còn ngẫu nhiên thắc mắc nào, hoặc cần hỗ trợ tư vấn thêm về về tối ưu website, hãy contact ngay với thương mại & dịch vụ SEO mentor trên cachseo.com để được support bởi các chuyên viên nhiều năm gớm nghiệm.