Hướng dẫn mysql create index on table - mysql tạo chỉ mục trên bảng
Show 13.1.15 & NBSP; Tạo câu lệnh INDEX
Thông thường, bạn tạo tất cả các chỉ mục trên bảng tại thời điểm bảng được tạo bằng 2. Xem Phần & NBSP; 13.1.20, Tuyên bố Tạo bảng. Hướng dẫn này đặc biệt quan trọng đối với các bảng 3, trong đó khóa chính xác định bố cục vật lý của các hàng trong tệp dữ liệu. 4 cho phép bạn thêm các chỉ mục vào các bảng hiện có.
4 được ánh xạ tới câu lệnh 6 để tạo các chỉ mục. Xem Phần & NBSP; 13.1.9, Tuyên bố bảng thay đổi. 4 không thể được sử dụng để tạo 8; sử dụng 6 thay thế. Để biết thêm thông tin về các chỉ mục, hãy xem Phần & NBSP; 8.3.1, Cách MySQL sử dụng các chỉ mục.
3 hỗ trợ các chỉ mục thứ cấp trên các cột ảo. Để biết thêm thông tin, xem Phần & NBSP; 13.1.20.9, Chỉ mục thứ cấp và các cột được tạo.Khi cài đặt 1 được bật, hãy chạy câu lệnh 2 cho bảng 3 sau khi tạo một chỉ mục trên bảng đó.Bắt đầu với MySQL 8.0.17, 4 cho thông số kỹ thuật 5 có thể lấy mẫu 6 dưới dạng mảng 7) để tạo chỉ mục đa giá trị trên cột 8. Xem các chỉ mục đa giá trị.Một đặc tả chỉ mục của mẫu 9, 0, ...) tạo một chỉ mục với nhiều phần chính. Các giá trị khóa chỉ mục được hình thành bằng cách kết hợp các giá trị của các phần khóa đã cho. Ví dụ 1 chỉ định một chỉ mục nhiều cột với các khóa chỉ mục bao gồm các giá trị từ 2, 3 và 4.Thông số kỹ thuật 5 có thể kết thúc bằng 6 hoặc 7 để chỉ định xem các giá trị chỉ mục có được lưu trữ theo thứ tự tăng dần hay giảm dần hay không. Mặc định là tăng dần nếu không có trình xác định đơn hàng nào được đưa ra. 6 và 7 không được phép cho các chỉ mục 0. 6 và 7 cũng không được hỗ trợ cho các chỉ mục đa giá trị. Kể từ MySQL 8.0.12, 6 và 7 không được phép cho các chỉ mục 5.Các phần sau đây mô tả các khía cạnh khác nhau của tuyên bố 4:
Các bộ phận khóa tiền tố cộtCác bộ phận khóa chức năng
Tùy chọn chỉ mục
Các tiền tố có thể được chỉ định cho các phần chính 9, 0, 1 và 2.
Tiền tố phải được chỉ định cho các phần chính 3 và 4. Ngoài ra, các cột 3 và 4 chỉ có thể được lập chỉ mục cho các bảng 3, 8 và 9.Các bộ phận khóa chức năngChỉ số chỉ số của người Viking chỉ số các giá trị cột hoặc tiền tố của các giá trị cột. Ví dụ: trong bảng sau, mục nhập chỉ mục cho một hàng 02 đã cho bao gồm toàn bộ giá trị 2 và tiền tố của giá trị 3 bao gồm 10 ký tự đầu tiên của nó:“normal” index indexes column values
or prefixes of column values. For example, in the following table, the index entry for a given 02 row includes the full 2 value and a prefix of the 3 value consisting of its first 10 characters:
MySQL 8.0.13 và hỗ trợ cao hơn các phần khóa chức năng mà các giá trị biểu thức chỉ mục thay vì các giá trị tiền tố cột hoặc cột. Việc sử dụng các phần khóa chức năng cho phép lập chỉ mục các giá trị không được lưu trữ trực tiếp trong bảng. Ví dụ:
Một chỉ mục với nhiều phần chính có thể trộn các phần khóa không chức năng và chức năng.
6 và 7 được hỗ trợ cho các phần khóa chức năng.Các phần khóa chức năng phải tuân thủ các quy tắc sau. Một lỗi xảy ra nếu một định nghĩa phần chính chứa các cấu trúc không được phép.
Đối với 09, bảng đích lưu giữ các phần khóa chức năng từ bảng gốc.Các chỉ mục chức năng được triển khai dưới dạng các cột được tạo ảo ẩn, có những hàm ý này:
10 được hỗ trợ cho các chỉ mục bao gồm các phần khóa chức năng. Tuy nhiên, các khóa chính không thể bao gồm các phần khóa chức năng. Một khóa chính yêu cầu cột được tạo được lưu trữ, nhưng các phần khóa chức năng được triển khai dưới dạng các cột được tạo ảo, không được lưu trữ các cột được tạo.Các chỉ mục 5 và 12 không thể có các phần khóa chức năng.Nếu một bảng không chứa khóa chính, 3 sẽ tự động quảng bá chỉ mục 14 đầu tiên lên khóa chính. Điều này không được hỗ trợ cho các chỉ mục 15 có các phần khóa chức năng.Các chỉ số không chức năng nêu ra một cảnh báo nếu có các chỉ mục trùng lặp. Các chỉ mục có chứa các bộ phận khóa chức năng không có tính năng này. Để loại bỏ một cột được tham chiếu bởi một phần khóa chức năng, chỉ mục phải được xóa trước. Nếu không, một lỗi xảy ra. Mặc dù các bộ phận khóa không chức năng hỗ trợ đặc tả độ dài tiền tố, nhưng điều này là không thể đối với các phần khóa chức năng. Giải pháp là sử dụng 07 (hoặc 08, như được mô tả sau trong phần này). Đối với phần khóa chức năng chứa hàm 07 được sử dụng trong truy vấn, mệnh đề 19 phải chứa 07 với cùng một đối số. Trong ví dụ sau, chỉ có 21 thứ hai có thể sử dụng chỉ mục vì đó là truy vấn duy nhất trong đó các đối số với 07 khớp với đặc tả chỉ mục:
Các phần khóa chức năng cho phép lập chỉ mục các giá trị không thể được lập chỉ mục khác, chẳng hạn như các giá trị 8. Tuy nhiên, điều này phải được thực hiện chính xác để đạt được hiệu ứng mong muốn. Ví dụ, cú pháp này không hoạt động:
Cú pháp thất bại vì:
Để lập chỉ mục cột 8, bạn có thể thử sử dụng hàm 08 như sau: 0Cột được tạo ẩn được gán kiểu dữ liệu 31, có thể được lập chỉ mục. Nhưng phương pháp này tạo ra một vấn đề mới khi cố gắng sử dụng chỉ mục:
Kết quả là, có sự không phù hợp đối chiếu giữa biểu thức được lập chỉ mục trong định nghĩa bảng trước và biểu thức mệnh đề 19 trong truy vấn sau: 1Chỉ số không được sử dụng vì các biểu thức trong truy vấn và chỉ số khác nhau. Để hỗ trợ loại kịch bản này cho các bộ phận khóa chức năng, trình tối ưu hóa sẽ tự động dải 08 khi tìm kiếm một chỉ mục để sử dụng, nhưng chỉ khi việc đối chiếu biểu thức được lập chỉ mục khớp với biểu thức truy vấn. Đối với một chỉ mục có phần khóa chức năng được sử dụng, một trong hai giải pháp sau đây hoạt động (mặc dù chúng khác nhau có hiệu lực):only if the collation of the indexed expression matches that of the query expression. For an index with a functional key part to be used, either of the following two solutions work (although they differ
somewhat in effect):
Xin lưu ý rằng mặc dù trình tối ưu hóa hỗ trợ tự động tước 08 với các cột được tạo được lập chỉ mục, cách tiếp cận sau không hoạt động vì nó tạo ra kết quả khác có và không có chỉ mục (Bug#27337092): 6Chỉ số độc đáoChỉ số 10 tạo ra một ràng buộc sao cho tất cả các giá trị trong chỉ mục phải khác biệt. Lỗi xảy ra nếu bạn cố gắng thêm một hàng mới với giá trị khóa phù hợp với hàng hiện có. Nếu bạn chỉ định giá trị tiền tố cho một cột trong chỉ mục 10, các giá trị cột phải là duy nhất trong độ dài tiền tố. Chỉ số 10 cho phép nhiều giá trị 49 cho các cột có thể chứa 49.Nếu một bảng có chỉ số 8 hoặc 15 bao gồm một cột duy nhất có loại số nguyên, bạn có thể sử dụng 53 để tham khảo cột được lập chỉ mục trong các câu lệnh 21, như sau:
Chỉ số đa giá trịKể từ MySQL 8.0.17, 3 hỗ trợ các chỉ mục đa giá trị. Chỉ mục đa giá trị là một chỉ mục thứ cấp được xác định trên một cột lưu trữ một mảng các giá trị. Một chỉ số bình thường của người Viking có một bản ghi chỉ số cho mỗi bản ghi dữ liệu (1: 1). Một chỉ mục đa giá trị có thể có nhiều bản ghi chỉ mục cho một bản ghi dữ liệu duy nhất (n: 1). Các chỉ mục đa giá trị được dự định để lập chỉ mục các mảng 8. Ví dụ: một chỉ mục đa giá trị được xác định trên mảng mã zip trong tài liệu JSON sau đây tạo một bản ghi chỉ mục cho mỗi mã zip, với mỗi bản ghi chỉ mục tham chiếu cùng một bản ghi dữ liệu.“normal” index has one index record for each data record (1:1). A multi-valued index can have multiple index records for a single data record (N:1). Multi-valued indexes are intended for indexing 8 arrays. For example, a multi-valued index defined on the array of zip codes in the following JSON document creates an index record for each zip code, with each index record referencing the same data record. 7Tạo các chỉ mục đa giá trịBạn có thể tạo một chỉ mục đa giá trị trong câu lệnh 66, 6 hoặc 4. Điều này yêu cầu sử dụng 69 trong định nghĩa chỉ số, đưa ra các giá trị vô hướng được gõ bằng một mảng 8 vào mảng kiểu dữ liệu SQL. Một cột ảo sau đó được tạo trong suốt với các giá trị trong mảng kiểu dữ liệu SQL; Cuối cùng, một chỉ mục chức năng (còn được gọi là chỉ mục ảo) được tạo trên cột ảo. Đây là chỉ mục chức năng được xác định trên cột ảo của các giá trị từ mảng kiểu dữ liệu SQL tạo thành chỉ mục đa giá trị.Các ví dụ trong danh sách sau đây cho thấy ba cách khác nhau trong đó chỉ mục đa giá trị 71 có thể được tạo trên một mảng 72 trên cột 8 74 trong một bảng có tên 75. Trong mỗi trường hợp, mảng JSON được chuyển vào một mảng kiểu dữ liệu SQL của các giá trị số nguyên 76.
Một chỉ số đa giá trị cũng có thể được định nghĩa là một phần của chỉ số tổng hợp. Ví dụ này cho thấy một chỉ số tổng hợp bao gồm hai phần có giá trị đơn (cho các cột 82 và 83) và một phần đa giá trị (cho cột 74): 1Chỉ có thể sử dụng một phần khóa đa giá trị có thể được sử dụng trong một chỉ số tổng hợp. Phần khóa đa giá trị có thể được sử dụng theo bất kỳ thứ tự nào so với các phần khác của khóa. Nói cách khác, câu lệnh 85 vừa được hiển thị có thể đã sử dụng 86 (hoặc bất kỳ thứ tự nào khác) và vẫn còn hợp lệ.Sử dụng các chỉ mục đa giá trịTrình tối ưu hóa sử dụng chỉ mục đa giá trị để tìm nạp các bản ghi khi các chức năng sau được chỉ định trong mệnh đề 19:
Chúng ta có thể chứng minh điều này bằng cách tạo và điền vào bảng 75 bằng cách sử dụng các câu lệnh 66 và 01 sau: 2Đầu tiên, chúng tôi thực thi ba truy vấn trên bảng 75, mỗi truy cập sử dụng 88, 89 và 90, với kết quả từ mỗi truy vấn được hiển thị ở đây: 3Tiếp theo, chúng tôi chạy 98 trên mỗi ba truy vấn trước đó: 4Không ai trong ba truy vấn chỉ hiển thị có thể sử dụng bất kỳ khóa nào. Để giải quyết vấn đề này, chúng tôi có thể thêm một chỉ mục đa giá trị trên mảng 99 trong cột 8 ( 74), như thế này: 5Khi chúng tôi chạy lại các câu lệnh 98 trước đó, giờ đây chúng tôi có thể quan sát rằng các truy vấn có thể (và làm) sử dụng chỉ mục 71 vừa được tạo: 6Một chỉ mục đa giá trị có thể được định nghĩa là một khóa duy nhất. Nếu được xác định là một khóa duy nhất, cố gắng chèn một giá trị đã có trong chỉ mục đa giá trị trả về một lỗi khóa trùng lặp. Nếu các giá trị trùng lặp đã có mặt, cố gắng thêm một chỉ mục đa giá trị duy nhất không thành công, như được hiển thị ở đây: 7Đặc điểm của các chỉ mục đa giá trịCác chỉ mục đa giá trị có các đặc điểm bổ sung được liệt kê ở đây:
Hạn chế và hạn chế đối với các chỉ mục đa giá trịCác chỉ mục đa giá trị phải tuân theo các hạn chế và hạn chế được liệt kê ở đây:
Chỉ số không gianCác công cụ lưu trữ 8, 3, 6 và 29 hỗ trợ các cột không gian như 30 và 31. . Các chỉ số không gian và không thường xuyên trên các cột không gian có sẵn theo các quy tắc sau.Các chỉ mục không gian trên các cột không gian có các đặc điểm này:
Các chỉ mục không có ngữ trên các cột không gian (được tạo bằng 38, 10 hoặc 8) có những đặc điểm này:
Tùy chọn chỉ mụcTheo danh sách phần chính, các tùy chọn chỉ mục có thể được đưa ra. Giá trị 48 có thể là bất kỳ điều nào sau đây:
Làm cách nào để lập chỉ mục một bảng trong mysql?Nói chung, chúng tôi tạo một chỉ mục tại thời điểm tạo bảng trong cơ sở dữ liệu. Câu lệnh sau đây tạo ra một bảng có chỉ mục chứa hai cột COL2 và COL3. Nếu chúng tôi muốn thêm chỉ mục vào bảng, chúng tôi sẽ sử dụng câu lệnh Creat Index như sau: mysql> Tạo index [index_name] trên [TABOR_NAME] (tên cột)mysql> CREATE INDEX [index_name] ON [table_name] (column names)
Tôi có thể thêm chỉ mục vào bảng hiện có mysql không?Để tạo các chỉ mục, hãy sử dụng lệnh tạo chỉ mục: Tạo index_name trên table_name (cột_name);Bạn có thể một chỉ mục trên nhiều cột.use the CREATE INDEX command: CREATE INDEX index_name ON table_name (column_name); You can an index on multiple columns.
Làm thế nào để bạn tạo một chỉ mục trên một bảng hiện có?Tạo cú pháp chỉ mục duy nhất trên bảng_name (cột1, cột2, ...);Lưu ý: Cú pháp để tạo các chỉ mục khác nhau giữa các cơ sở dữ liệu khác nhau.Do đó: Kiểm tra cú pháp để tạo các chỉ mục trong cơ sở dữ liệu của bạn.ON table_name (column1, column2, ...); Note: The syntax for creating indexes varies among different databases. Therefore: Check the syntax for creating indexes in your database.
Chúng ta có thể tạo chỉ mục trên bảng không?Lệnh tạo chỉ mục được sử dụng để tạo các chỉ mục trong các bảng (cho phép các giá trị trùng lặp).Các chỉ mục được sử dụng để lấy dữ liệu từ cơ sở dữ liệu rất nhanh.Người dùng không thể nhìn thấy các chỉ mục, chúng chỉ được sử dụng để tăng tốc các tìm kiếm/truy vấn. |