Hướng dẫn remove prefix mysql - loại bỏ tiền tố mysql

Tất cả các bảng trong cơ sở dữ liệu

CREATE INDEX part_of_name ON customer (name(10));
4 cụ thể, ví dụ
CREATE INDEX part_of_name ON customer (name(10));
5, bắt đầu với một tiền tố mà độ dài của nó là ký tự
CREATE INDEX part_of_name ON customer (name(10));
6. Tôi muốn xóa tiền tố khỏi tên của tất cả các bảng. Làm thế nào tôi có thể làm điều này?

Đã hỏi ngày 27 tháng 3 năm 2021 lúc 5:09Mar 27, 2021 at 5:09

Hướng dẫn remove prefix mysql - loại bỏ tiền tố mysql

Hasanghaforianhasanghaforianhasanghaforian

13.6K9 Huy hiệu vàng74 Huy hiệu bạc161 Huy hiệu đồng9 gold badges74 silver badges161 bronze badges

Cải thiện câu trả lời của Hasanghaforian ... đã loại bỏ các chức năng liên kết bổ sung .. vẫn tạo ra đầu ra giống nhau

select concat('RENAME TABLE ', table_name, ' TO ' , substr(table_name,18) , ' ; ' ) from information_schema.tables where table_schema = 'my_db';

Đã trả lời ngày 27 tháng 3 năm 2021 lúc 5:24Mar 27, 2021 at 5:24

Hướng dẫn remove prefix mysql - loại bỏ tiền tố mysql

Tôi đã thêm

CREATE INDEX part_of_name ON customer (name(10));
7 vào câu lệnh được mô tả ở đây để nhận câu lệnh đổi tên tất cả các bảng trong cơ sở dữ liệu
CREATE INDEX part_of_name ON customer (name(10));
5, thay vì đổi tên tất cả các bảng của tất cả các cơ sở dữ liệu trong phiên bản MYSQL Server:

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';

Hãy chú ý rằng độ dài của tiền tố là

CREATE INDEX part_of_name ON customer (name(10));
6 và tôi đã sử dụng
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
0 trong lệnh
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
1.

Đã trả lời ngày 27 tháng 3 năm 2021 lúc 5:09Mar 27, 2021 at 5:09

Hasanghaforianhasanghaforianhasanghaforian

13.6K9 Huy hiệu vàng74 Huy hiệu bạc161 Huy hiệu đồng9 gold badges74 silver badges161 bronze badges

13.1.15 & NBSP; Tạo câu lệnh INDEX

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}

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

CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
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
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
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.
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
4 cho phép bạn thêm các chỉ mục vào các bảng hiện có.

CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
4 được ánh xạ tới câu lệnh
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
6 để tạo các chỉ mục. Xem Phần & NBSP; 13.1.9, Tuyên bố bảng thay đổi.
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
4 không thể được sử dụng để tạo
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
8; sử dụng
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
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.

CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
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

CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
1 được bật, hãy chạy câu lệnh
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
2 cho bảng
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
3 sau khi tạo một chỉ mục trên bảng đó.

Bắt đầu với MySQL 8.0.17,

CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
4 cho thông số kỹ thuật
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
5 có thể lấy mẫu
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
6 dưới dạng mảng
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
7) để tạo chỉ mục đa giá trị trên cột
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
8. Xem các chỉ mục đa giá trị.

Một đặc tả chỉ mục của Mẫu

CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
9,
INDEX ((col1 + col2), (col3 - col4))
0, ...) Tạo một chỉ mục có 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ụ
INDEX ((col1 + col2), (col3 - col4))
1 chỉ định chỉ số nhiều cột với các khóa chỉ mục bao gồm các giá trị từ
INDEX ((col1 + col2), (col3 - col4))
2,
INDEX ((col1 + col2), (col3 - col4))
3 và
INDEX ((col1 + col2), (col3 - col4))
4.

Thông số kỹ thuật

CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
5 có thể kết thúc bằng
INDEX ((col1 + col2), (col3 - col4))
6 hoặc
INDEX ((col1 + col2), (col3 - col4))
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.
INDEX ((col1 + col2), (col3 - col4))
6 và
INDEX ((col1 + col2), (col3 - col4))
7 không được phép cho các chỉ mục
INDEX (col1 + col2, col3 - col4)
0.
INDEX ((col1 + col2), (col3 - col4))
6 và
INDEX ((col1 + col2), (col3 - col4))
7 cũng không được hỗ trợ cho các chỉ mục đa giá trị. Kể từ MySQL 8.0.12,
INDEX ((col1 + col2), (col3 - col4))
6 và
INDEX ((col1 + col2), (col3 - col4))
7 không được phép cho các chỉ mục
INDEX (col1 + col2, col3 - col4)
5.

Các phần sau đây mô tả các khía cạnh khác nhau của tuyên bố

CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
4:

  • Các bộ phận khóa tiền tố cột

  • Các bộ phận khóa chức năng

  • Chỉ số độc đáo

  • Chỉ số toàn văn

  • Chỉ số đa giá trị

  • Chỉ số không gian

  • Tùy chọn chỉ mục

  • Tùy chọn sao chép và khóa bảng

Các bộ phận khóa tiền tố cột

Các bộ phận khóa chức năng

  • Chỉ số độc đáo

  • Chỉ số toàn vănmust be specified for

    INDEX ((col1), (col2))
    3 and
    INDEX ((col1), (col2))
    4 key parts. Additionally,
    INDEX ((col1), (col2))
    3 and
    INDEX ((col1), (col2))
    4 columns can be indexed only for
    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    3,
    INDEX ((col1), (col2))
    8, and
    INDEX ((col1), (col2))
    9 tables.

  • Chỉ số đa giá trịlimits are measured in bytes. However, prefix lengths for index specifications in

    INDEX (col1, col2)
    0,
    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    6, and
    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    4 statements are interpreted as number of characters for nonbinary string types (
    INDEX (col1 + col2, col3 - col4)
    9,
    INDEX ((col1), (col2))
    0,
    INDEX ((col1), (col2))
    4) and number of bytes for binary string types (
    INDEX ((col1), (col2))
    1,
    INDEX ((col1), (col2))
    2,
    INDEX ((col1), (col2))
    3). Take this into account when specifying a prefix length for a nonbinary string column that uses a multibyte character set.

    Chỉ số không gian

Tùy chọn chỉ mục

  • Đối với chỉ số không liên quan, xảy ra lỗi (nếu chế độ SQL nghiêm ngặt được bật) hoặc độ dài chỉ mục bị giảm để nằm trong kích thước kiểu dữ liệu cột tối đa và cảnh báo được tạo ra (nếu chế độ SQL nghiêm ngặt không được bật).

  • Đối với một chỉ mục duy nhất, một lỗi xảy ra bất kể chế độ SQL vì việc giảm độ dài chỉ số có thể cho phép chèn các mục không liên quan không đáp ứng yêu cầu tính duy nhất được chỉ định.

Câu lệnh được hiển thị ở đây tạo ra một chỉ mục bằng cách sử dụng 10 ký tự đầu tiên của cột ____108 (giả sử rằng

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
08 có loại chuỗi không phải là một loại):

CREATE INDEX part_of_name ON customer (name(10));

Nếu các tên trong cột thường khác nhau ở 10 ký tự đầu tiên, các tra cứu được thực hiện bằng cách sử dụng chỉ mục này sẽ không chậm hơn nhiều so với việc sử dụng một chỉ mục được tạo từ toàn bộ cột

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
08. Ngoài ra, sử dụng các tiền tố cột cho các chỉ mục có thể làm cho tệp chỉ mục nhỏ hơn nhiều, có thể tiết kiệm rất nhiều không gian đĩa và cũng có thể tăng tốc các hoạt động
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
11.

Các bộ phận khóa chức năng

Chỉ 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

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
12 đã cho bao gồm toàn bộ giá trị
INDEX ((col1 + col2), (col3 - col4))
2 và tiền tố của giá trị
INDEX ((col1 + col2), (col3 - col4))
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
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
12 row includes the full
INDEX ((col1 + col2), (col3 - col4))
2 value and a prefix of the
INDEX ((col1 + col2), (col3 - col4))
3 value consisting of its first 10 characters:

CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);

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ụ:

CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);

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.

INDEX ((col1 + col2), (col3 - col4))
6 và
INDEX ((col1 + col2), (col3 - col4))
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.

  • Trong các định nghĩa chỉ số, bao gồm các biểu thức trong ngoặc đơn để phân biệt chúng với các cột hoặc tiền tố cột. Ví dụ, điều này được cho phép; Các biểu thức được đặt trong khoảng dấu ngoặc đơn:

    INDEX ((col1 + col2), (col3 - col4))

    Điều này tạo ra một lỗi; Các biểu thức không được đặt trong ngoặc đơn:

    INDEX (col1 + col2, col3 - col4)
  • Một phần khóa chức năng không thể chỉ bao gồm một tên cột. Ví dụ, điều này không được phép:

    INDEX ((col1), (col2))

    Thay vào đó, hãy viết các phần chính như các phần khóa không chức năng, không có dấu ngoặc đơn:

    INDEX (col1, col2)
  • Một biểu thức phần khóa chức năng không thể tham khảo các tiền tố cột. Đối với một cách giải quyết, hãy xem cuộc thảo luận về

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    17 và
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    18 sau trong phần này.

  • Các bộ phận khóa chức năng không được phép trong các thông số kỹ thuật quan trọng của nước ngoài.

Đối với

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
19, bảng đích lưu giữ các bộ 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:

  • Mỗi phần khóa chức năng được tính theo giới hạn trên tổng số cột bảng; Xem Phần & NBSP; 8.4.7, Giới hạn trên số đếm cột và kích thước hàng.

  • Các bộ phận khóa chức năng kế thừa tất cả các hạn chế áp dụng cho các cột được tạo. Ví dụ:

    • Chỉ các chức năng được phép cho các cột được tạo mới được phép cho các phần khóa chức năng.

    • Các mục tiêu con, tham số, biến, chức năng được lưu trữ và các hàm có thể tải không được phép.

    Để biết thêm thông tin về các hạn chế áp dụng, xem Phần & NBSP; 13.1.20.8, Bảng Tạo bảng và các cột được tạo, và Phần & NBSP; 13.1.9.2, Bảng thay đổi và các cột được tạo.

  • Cột được tạo ảo không yêu cầu lưu trữ. Bản thân chỉ mục chiếm không gian lưu trữ như bất kỳ chỉ mục nào khác.

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
20 đượ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.

INDEX (col1 + col2, col3 - col4)
5 và
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
22 Các chỉ mục 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,

CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
3 sẽ tự động quảng bá chỉ mục
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
24 đầu tiên lên khóa chính. Điều này không được hỗ trợ cho các chỉ mục
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
25 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

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
17 (hoặc
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
18, như được mô tả sau trong phần này). Đối với một phần khóa chức năng chứa hàm
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
17 được sử dụng trong truy vấn, mệnh đề
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
29 phải chứa
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
17 với cùng một đối số. Trong ví dụ sau, chỉ có
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
31 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
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
17 khớp với đặc tả chỉ mục:

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
0

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ị

CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
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:

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
1

Cú pháp thất bại vì:

  • Toán tử

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    34 chuyển thành
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    35.

  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    36 Trả về một giá trị với loại dữ liệu là
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    37 và cột được tạo ẩn do đó được gán cùng một loại dữ liệu.

  • MySQL không thể lập chỉ mục

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    37 Các cột được chỉ định mà không có độ dài tiền tố trên phần chính và độ dài tiền tố không được phép trong các phần khóa chức năng.

Để lập chỉ mục cột

CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
8, bạn có thể thử sử dụng chức năng
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
18 như sau:

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
2

Cột được tạo ẩn được gán kiểu dữ liệu

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
41, 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:

  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    18 Trả về một chuỗi với đối chiếu
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    43 (đối chiếu mặc định máy chủ).

  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    36 Trả về một chuỗi với đối chiếu
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    45 (mã hóa cứng).

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 đề

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
29 trong truy vấn sau:

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
3

Chỉ 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 thoát

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
18 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):

  • Giải pháp 1. Gán biểu thức được lập chỉ mục cùng đối chiếu như

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    36:

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    4

    Toán tử

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    34 giống như
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    35 và
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    36 trả về một chuỗi với đối chiếu
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    45. Do đó, so sánh là nhạy cảm trường hợp và chỉ có một hàng khớp:

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    5
  • Giải pháp 2. Chỉ định biểu thức đầy đủ trong truy vấn:

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    6

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    18 Trả về một chuỗi với đối chiếu
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    43, do đó, sự nhạy cảm của trường hợp so sánh và hai hàng khớp:

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    7

Xin lưu ý rằng mặc dù trình tối ưu hóa hỗ trợ tự động tước

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
18 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):

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
8

Chỉ số độc đáo

Chỉ số

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
20 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
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
20, các giá trị cột phải là duy nhất trong độ dài tiền tố. Chỉ số
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
20 cho phép nhiều giá trị
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
59 cho các cột có thể chứa
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
59.

Nếu một bảng có chỉ số

CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
8 hoặc
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
25 bao gồm một cột duy nhất có loại số nguyên, bạn có thể sử dụng
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
63 để tham khảo cột được lập chỉ mục trong các câu lệnh
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
31, như sau:

  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    63 đề cập đến cột
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    66 nếu có
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    66 bao gồm một cột số nguyên duy nhất. Nếu có
    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    8 nhưng nó không bao gồm một cột số nguyên duy nhất,
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    63 không thể được sử dụng.

  • Mặt khác,

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    63 đề cập đến cột trong chỉ số
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    25 đầu tiên nếu chỉ mục đó bao gồm một cột số nguyên duy nhất. Nếu chỉ số
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    25 đầu tiên không bao gồm một cột số nguyên duy nhất,
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    63 không thể được sử dụng.

Chỉ số đa giá trị

Kể từ MySQL 8.0.17,

CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
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
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
8 mảng. 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
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
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.

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
9
Tạ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

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
76,
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
6 hoặc
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
4. Điều này yêu cầu sử dụng
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
79 trong định nghĩa chỉ số, đưa ra các giá trị vô hướng được gõ bằng một mảng
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
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ị

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
81 có thể được tạo trên một mảng
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
82 trên cột
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
8
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
84 trong một bảng có tên
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
85. 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
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
86.

  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    76 chỉ:

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    0
  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    76 cộng với
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    89:

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    1
  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    76 cộng với
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    91:

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    2

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

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
92 và
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
93) và một phần đa giá trị (cho cột
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
84):

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
3

Chỉ 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

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
95 vừa được hiển thị có thể đã sử dụng
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
96 (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 đề

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
29:

  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    98

  • select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    99

  • CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    00

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

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
85 bằng cách sử dụng các câu lệnh
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
76 và
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
11 sau:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
4

Đầu tiên, chúng tôi thực thi ba truy vấn trên bảng

select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
85, mỗi truy cập sử dụng
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
98,
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
99 và
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
00, với kết quả từ mỗi truy vấn được hiển thị ở đây:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
5

Tiếp theo, chúng tôi chạy

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
08 trên mỗi ba truy vấn trước đó:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
6

Khô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

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
09 trong cột
CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
CREATE INDEX idx1 ON t1 ((col1 + col2));
CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
8 (
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
84), như thế này:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
7

Khi chúng tôi chạy lại các câu lệnh

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
08 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
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
81 vừa được tạo:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
8

Mộ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:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
9
Đặ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:

  • Các hoạt động DML ảnh hưởng đến các chỉ mục đa giá trị được xử lý theo cách tương tự như các hoạt động DML ảnh hưởng đến chỉ số bình thường, với sự khác biệt duy nhất là có thể có nhiều hơn một lần chèn hoặc cập nhật cho một bản ghi chỉ mục phân cụm duy nhất.

  • Khả năng vô tính và các chỉ mục đa giá trị:

    • Nếu phần khóa đa giá trị có một mảng trống, không có mục nào được thêm vào chỉ mục và bản ghi dữ liệu không thể truy cập được bằng cách quét chỉ mục.

    • Nếu thế hệ phần khóa đa giá trị trả về giá trị

      select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
      
      59, một mục nhập duy nhất chứa
      select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
      
      59 sẽ được thêm vào chỉ mục đa giá trị. Nếu phần chính được định nghĩa là
      CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
          [index_type]
          ON tbl_name (key_part,...)
          [index_option]
          [algorithm_option | lock_option] ...
      
      key_part: {col_name [(length)] | (expr)} [ASC | DESC]
      
      index_option: {
          KEY_BLOCK_SIZE [=] value
        | index_type
        | WITH PARSER parser_name
        | COMMENT 'string'
        | {VISIBLE | INVISIBLE}
        | ENGINE_ATTRIBUTE [=] 'string'
        | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
      }
      
      index_type:
          USING {BTREE | HASH}
      
      algorithm_option:
          ALGORITHM [=] {DEFAULT | INPLACE | COPY}
      
      lock_option:
          LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
      16, một lỗi được báo cáo.

    • Nếu cột mảng gõ được đặt thành

      select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
      
      59, công cụ lưu trữ sẽ lưu trữ một bản ghi duy nhất chứa
      select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
      
      59 trỏ đến bản ghi dữ liệu.

    • CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
      CREATE INDEX idx1 ON t1 ((col1 + col2));
      CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
      ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
      8 Các giá trị NULL không được phép trong các mảng được lập chỉ mục. Nếu bất kỳ giá trị trả về nào là
      select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
      
      59, nó được coi là một null JSON và lỗi giá trị JSON không hợp lệ được báo cáo.Invalid JSON value error is reported.

  • Bởi vì các chỉ mục đa giá trị là các chỉ mục ảo trên các cột ảo, chúng phải tuân thủ các quy tắc giống như các chỉ mục thứ cấp trên các cột được tạo ảo.

  • Hồ sơ chỉ số không được thêm vào cho các mảng trống.

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ỉ được phép một phần khóa đa giá trị được cho phép trên mỗi chỉ mục đa giá trị. Tuy nhiên, biểu thức

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    21 có thể tham khảo nhiều mảng trong tài liệu
    CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
    CREATE INDEX idx1 ON t1 ((col1 + col2));
    CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
    ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
    8, như được hiển thị ở đây:

    CREATE INDEX part_of_name ON customer (name(10));
    0

    Trong trường hợp này, tất cả các giá trị khớp với biểu thức JSON được lưu trữ trong chỉ mục dưới dạng một mảng phẳng duy nhất.

  • Một chỉ mục có phần khóa đa giá trị không hỗ trợ đặt hàng và do đó không thể được sử dụng làm khóa chính. Vì lý do tương tự, một chỉ mục đa giá trị không thể được xác định bằng cách sử dụng từ khóa

    INDEX ((col1 + col2), (col3 - col4))
    6 hoặc
    INDEX ((col1 + col2), (col3 - col4))
    7.

  • Một chỉ mục đa giá trị không thể là một chỉ mục bảo hiểm.

  • Số lượng giá trị tối đa cho mỗi bản ghi cho một chỉ số đa giá trị được xác định bởi lượng dữ liệu có thể được lưu trữ trên một trang nhật ký hoàn tác, là 65221 byte (64K trừ 315 byte cho chi phí Độ dài của các giá trị chính cũng là 65221 byte. Số lượng phím tối đa phụ thuộc vào các yếu tố khác nhau, ngăn chặn việc xác định giới hạn cụ thể. Các thử nghiệm đã chỉ ra một chỉ số đa giá trị để cho phép có tới 1604 khóa số nguyên cho mỗi bản ghi, ví dụ. Khi đạt đến giới hạn, một lỗi tương tự như sau được báo cáo: Lỗi 3905 (HY000): vượt quá số lượng giá trị tối đa trên mỗi bản ghi cho chỉ mục đa giá trị 'IDX' bằng 1 giá trị.ERROR 3905 (HY000): Exceeded max number of values per record for multi-valued index 'idx' by 1 value(s).

  • Loại biểu thức duy nhất được phép trong một phần khóa đa giá trị là biểu thức

    CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
    CREATE INDEX idx1 ON t1 ((col1 + col2));
    CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
    ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
    8. Biểu thức không cần tham khảo một phần tử hiện có trong tài liệu JSON được chèn vào cột được lập chỉ mục, mà phải tự mình có hiệu lực về mặt cú pháp.

  • Bởi vì các bản ghi chỉ mục cho cùng một bản ghi chỉ mục được phân phối được phân tán trong toàn bộ chỉ mục đa giá trị, nên chỉ mục đa giá trị không hỗ trợ quét phạm vi hoặc quét chỉ có chỉ mục.

  • Các chỉ mục đa giá trị không được phép trong các thông số kỹ thuật quan trọng của nước ngoài.

  • Tiền tố chỉ mục không thể được xác định cho các chỉ mục đa giá trị.

  • Các chỉ mục đa giá trị không thể được xác định trên dữ liệu được đúc là

    INDEX ((col1), (col2))
    1 (xem mô tả của hàm
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    18).

  • Tạo trực tuyến một chỉ mục đa giá trị không được hỗ trợ, điều đó có nghĩa là hoạt động sử dụng

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    28. Xem các yêu cầu về hiệu suất và không gian.

  • Các bộ ký tự và đối chiếu khác với hai kết hợp sau của bộ ký tự và đối chiếu không được hỗ trợ cho các chỉ mục đa giá trị:

    1. Ký tự

      CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
          [index_type]
          ON tbl_name (key_part,...)
          [index_option]
          [algorithm_option | lock_option] ...
      
      key_part: {col_name [(length)] | (expr)} [ASC | DESC]
      
      index_option: {
          KEY_BLOCK_SIZE [=] value
        | index_type
        | WITH PARSER parser_name
        | COMMENT 'string'
        | {VISIBLE | INVISIBLE}
        | ENGINE_ATTRIBUTE [=] 'string'
        | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
      }
      
      index_type:
          USING {BTREE | HASH}
      
      algorithm_option:
          ALGORITHM [=] {DEFAULT | INPLACE | COPY}
      
      lock_option:
          LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
      29 được đặt với bộ đối chiếu
      CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
          [index_type]
          ON tbl_name (key_part,...)
          [index_option]
          [algorithm_option | lock_option] ...
      
      key_part: {col_name [(length)] | (expr)} [ASC | DESC]
      
      index_option: {
          KEY_BLOCK_SIZE [=] value
        | index_type
        | WITH PARSER parser_name
        | COMMENT 'string'
        | {VISIBLE | INVISIBLE}
        | ENGINE_ATTRIBUTE [=] 'string'
        | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
      }
      
      index_type:
          USING {BTREE | HASH}
      
      algorithm_option:
          ALGORITHM [=] {DEFAULT | INPLACE | COPY}
      
      lock_option:
          LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
      29 mặc định

    2. Ký tự

      CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
          [index_type]
          ON tbl_name (key_part,...)
          [index_option]
          [algorithm_option | lock_option] ...
      
      key_part: {col_name [(length)] | (expr)} [ASC | DESC]
      
      index_option: {
          KEY_BLOCK_SIZE [=] value
        | index_type
        | WITH PARSER parser_name
        | COMMENT 'string'
        | {VISIBLE | INVISIBLE}
        | ENGINE_ATTRIBUTE [=] 'string'
        | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
      }
      
      index_type:
          USING {BTREE | HASH}
      
      algorithm_option:
          ALGORITHM [=] {DEFAULT | INPLACE | COPY}
      
      lock_option:
          LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
      31 được đặt với đối chiếu
      CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
          [index_type]
          ON tbl_name (key_part,...)
          [index_option]
          [algorithm_option | lock_option] ...
      
      key_part: {col_name [(length)] | (expr)} [ASC | DESC]
      
      index_option: {
          KEY_BLOCK_SIZE [=] value
        | index_type
        | WITH PARSER parser_name
        | COMMENT 'string'
        | {VISIBLE | INVISIBLE}
        | ENGINE_ATTRIBUTE [=] 'string'
        | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
      }
      
      index_type:
          USING {BTREE | HASH}
      
      algorithm_option:
          ALGORITHM [=] {DEFAULT | INPLACE | COPY}
      
      lock_option:
          LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
      32 mặc định.

  • Cũng như các chỉ mục khác trên các cột của bảng

    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    3, một chỉ mục đa giá trị không thể được tạo bằng
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    34; Cố gắng thực hiện như vậy dẫn đến cảnh báo: Công cụ lưu trữ này không hỗ trợ thuật toán chỉ số băm, mặc định công cụ lưu trữ đã được sử dụng thay thế. (
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    35 được hỗ trợ như bình thường.)This storage engine does not support the HASH index algorithm, storage engine default was used instead. (
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    35 is supported as usual.)

Chỉ số không gian

Các công cụ lưu trữ

INDEX ((col1), (col2))
8,
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
3,
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
06 và
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
39 hỗ trợ các cột không gian như
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
40 và
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
41. . 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:

  • Chỉ có sẵn cho bảng

    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    3 và
    INDEX ((col1), (col2))
    8. Chỉ định
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    44 cho các công cụ lưu trữ khác dẫn đến lỗi.

  • Kể từ MySQL 8.0.12, một chỉ mục trên cột không gian phải là chỉ mục

    INDEX (col1 + col2, col3 - col4)
    5. Do đó, từ khóa
    INDEX (col1 + col2, col3 - col4)
    5 là tùy chọn nhưng tiềm ẩn để tạo một chỉ mục trên một cột không gian.must be a
    INDEX (col1 + col2, col3 - col4)
    5 index. The
    INDEX (col1 + col2, col3 - col4)
    5 keyword is thus optional but implicit for creating an index on a spatial column.

  • Chỉ có sẵn cho các cột không gian duy nhất. Một chỉ số không gian không thể được tạo ra trên nhiều cột không gian.

  • Các cột được lập chỉ mục phải là

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    47.

  • Độ dài tiền tố cột bị cấm. Độ rộng đầy đủ của mỗi cột được lập chỉ mục.

  • Không được phép cho một khóa chính hoặc chỉ mục duy nhất.

Các chỉ mục không có tiêu chuẩn trên các cột không gian (được tạo bằng

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
48,
select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
20 hoặc
CREATE TABLE t1 (
  col1 VARCHAR(10),
  col2 VARCHAR(20),
  INDEX (col1, col2(10))
);
8) có những đặc điểm này:

  • Được phép cho bất kỳ công cụ lưu trữ nào hỗ trợ các cột không gian ngoại trừ

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    39.

  • Các cột có thể là

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    59 trừ khi chỉ mục là khóa chính.

  • Loại chỉ mục cho một chỉ số không phải là -____ 75 phụ thuộc vào công cụ lưu trữ. Hiện tại, cây B được sử dụng.

  • Được phép cho một cột có thể có giá trị

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    59 chỉ cho các bảng
    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    3,
    INDEX ((col1), (col2))
    8 và
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    57.

Tùy chọn chỉ mục

Theo danh sách phần chính, các tùy chọn chỉ mục có thể được đưa ra. Giá trị

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
58 có thể là bất kỳ điều nào sau đây:

  • CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    59

    Đối với các bảng

    INDEX ((col1), (col2))
    8,
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    61 Tùy chọn chỉ định kích thước tính bằng byte để sử dụng cho các khối khóa chỉ mục. Giá trị được coi là một gợi ý; Một kích thước khác nhau có thể được sử dụng nếu cần thiết. Giá trị
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    61 được chỉ định cho một định nghĩa chỉ số riêng lẻ ghi đè giá trị cấp bảng
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    61.

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    61 không được hỗ trợ ở cấp chỉ mục cho các bảng
    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    3. Xem Phần & NBSP; 13.1.20, Tuyên bố Tạo bảng.

  • CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66

    Một số công cụ lưu trữ cho phép bạn chỉ định loại chỉ mục khi tạo một chỉ mục. Ví dụ:

    CREATE INDEX part_of_name ON customer (name(10));
    1

    Bảng & NBSP; 13.1, Các loại chỉ mục trên mỗi công cụ lưu trữ, hiển thị các giá trị loại chỉ mục cho phép được hỗ trợ bởi các công cụ lưu trữ khác nhau. Trong trường hợp nhiều loại chỉ mục được liệt kê, loại đầu tiên là mặc định khi không có nhà xác định loại chỉ mục nào được đưa ra. Các công cụ lưu trữ không được liệt kê trong bảng không hỗ trợ mệnh đề

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66 trong các định nghĩa chỉ mục.

    Bảng & NBSP; 13.1 & NBSP; Các loại chỉ mục trên mỗi công cụ lưu trữ

    Công cụ lưu trữCác loại chỉ mục cho phép
    CREATE TABLE t1 (
      col1 VARCHAR(10),
      col2 VARCHAR(20),
      INDEX (col1, col2(10))
    );
    3
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    INDEX ((col1), (col2))
    8
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    INDEX ((col1), (col2))
    8
    ________ 257/________ 273
    INDEX (col1 + col2, col3 - col4)
    0,
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    06

    INDEX (col1 + col2, col3 - col4)
    0,
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69 (xem ghi chú trong văn bản)

    Điều khoản

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66 không thể được sử dụng cho
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    80 hoặc (trước thông số kỹ thuật của MySQL 8.0.12)
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    44. Thực hiện chỉ số toàn văn là phụ thuộc vào công cụ lưu trữ. Các chỉ số không gian được thực hiện dưới dạng chỉ số r-cây.

    Các chỉ mục

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69 được thực hiện bởi công cụ lưu trữ ____106 dưới dạng chỉ mục T-Tree.

    Ghi chú

    Đối với các chỉ mục trên các cột bảng

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    06, tùy chọn
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    88 chỉ có thể được chỉ định cho một chỉ mục hoặc khóa chính duy nhất.
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    34 ngăn chặn việc tạo ra một chỉ số được đặt hàng; Mặt khác, việc tạo một chỉ mục hoặc khóa chính duy nhất trên bảng
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    06 tự động dẫn đến việc tạo ra cả chỉ mục được đặt hàng và chỉ mục băm, mỗi chỉ mục cùng một tập hợp các cột.

    Đối với các chỉ mục duy nhất bao gồm một hoặc nhiều cột

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    59 của bảng
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    06, chỉ số băm chỉ có thể được sử dụng để tra cứu các giá trị theo nghĩa đen, điều đó có nghĩa là các điều kiện
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    93 yêu cầu quét toàn bộ bảng. Một cách giải quyết là đảm bảo rằng một chỉ mục duy nhất sử dụng một hoặc nhiều cột
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    59 trên bảng như vậy luôn được tạo theo cách mà nó bao gồm chỉ mục được đặt hàng; nghĩa là, tránh sử dụng
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    34 khi tạo chỉ mục.

    Nếu bạn chỉ định một loại chỉ mục không hợp lệ cho một công cụ lưu trữ nhất định, nhưng loại chỉ mục khác có sẵn mà động cơ có thể sử dụng mà không ảnh hưởng đến kết quả truy vấn, động cơ sử dụng loại có sẵn. Trình phân tích cú pháp nhận ra

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    82 là tên loại, nhưng hiện tại không thể chỉ định cho bất kỳ công cụ lưu trữ nào.

    Ghi chú

    Đối với các chỉ mục trên các cột bảng

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    06, tùy chọn
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    88 chỉ có thể được chỉ định cho một chỉ mục hoặc khóa chính duy nhất.
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    34 ngăn chặn việc tạo ra một chỉ số được đặt hàng; Mặt khác, việc tạo một chỉ mục hoặc khóa chính duy nhất trên bảng
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    06 tự động dẫn đến việc tạo ra cả chỉ mục được đặt hàng và chỉ mục băm, mỗi chỉ mục cùng một tập hợp các cột.

    Đối với các chỉ mục duy nhất bao gồm một hoặc nhiều cột

    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    59 của bảng
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    06, chỉ số băm chỉ có thể được sử dụng để tra cứu các giá trị theo nghĩa đen, điều đó có nghĩa là các điều kiện
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    93 yêu cầu quét toàn bộ bảng. Một cách giải quyết là đảm bảo rằng một chỉ mục duy nhất sử dụng một hoặc nhiều cột
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    59 trên bảng như vậy luôn được tạo theo cách mà nó bao gồm chỉ mục được đặt hàng; nghĩa là, tránh sử dụng
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    34 khi tạo chỉ mục.

    Nếu bạn chỉ định một loại chỉ mục không hợp lệ cho một công cụ lưu trữ nhất định, nhưng loại chỉ mục khác có sẵn mà động cơ có thể sử dụng mà không ảnh hưởng đến kết quả truy vấn, động cơ sử dụng loại có sẵn. Trình phân tích cú pháp nhận ra

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    82 là tên loại, nhưng hiện tại không thể chỉ định cho bất kỳ công cụ lưu trữ nào.

    Việc sử dụng tùy chọn

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66 trước mệnh đề
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    98 bị phản đối; Mong đợi hỗ trợ sử dụng tùy chọn ở vị trí này sẽ bị xóa trong bản phát hành MySQL trong tương lai. Nếu tùy chọn
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66 được đưa ra ở cả hai vị trí trước và sau này, tùy chọn cuối cùng được áp dụng.

    CREATE INDEX part_of_name ON customer (name(10));
    00 được công nhận là từ đồng nghĩa với
    CREATE INDEX part_of_name ON customer (name(10));
    01. Tuy nhiên,
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    88 là hình thức ưa thích.
    Các bảng sau đây hiển thị các đặc điểm chỉ mục cho các công cụ lưu trữ hỗ trợ tùy chọn
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66.
    Bảng & NBSP; 13.2 & NBSP; Đặc điểm chỉ số công cụ lưu trữ InnodbLớp chỉ mụcLoại chỉ mụcLưu trữ giá trị null
    Cho phép nhiều giá trị nullLà loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    22
    Khóa chínhKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    INDEX (col1 + col2, col3 - col4)
    5
    Khóa chínhKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính


    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69

    CREATE INDEX part_of_name ON customer (name(10));
    00 được công nhận là từ đồng nghĩa với
    CREATE INDEX part_of_name ON customer (name(10));
    01. Tuy nhiên,
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    88 là hình thức ưa thích.
    Các bảng sau đây hiển thị các đặc điểm chỉ mục cho các công cụ lưu trữ hỗ trợ tùy chọn
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66.
    Bảng & NBSP; 13.2 & NBSP; Đặc điểm chỉ số công cụ lưu trữ InnodbLớp chỉ mụcLoại chỉ mụcLưu trữ giá trị null
    Cho phép nhiều giá trị nullLà loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    select concat('RENAME TABLE ', concat(table_name, concat(' TO ', concat(substr(table_name, 18), ';')))) from information_schema.tables where table_schema = 'my_db';
    
    22
    Khóa chínhKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    INDEX (col1 + col2, col3 - col4)
    5
    Khóa chínhKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính


    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69

    CREATE INDEX part_of_name ON customer (name(10));
    00 được công nhận là từ đồng nghĩa với
    CREATE INDEX part_of_name ON customer (name(10));
    01. Tuy nhiên,
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    88 là hình thức ưa thích.
    Các bảng sau đây hiển thị các đặc điểm chỉ mục cho các công cụ lưu trữ hỗ trợ tùy chọn
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66.
    Bảng & NBSP; 13.2 & NBSP; Đặc điểm chỉ số công cụ lưu trữ InnodbLớp chỉ mụcLoại chỉ mụcLưu trữ giá trị null
    Cho phép nhiều giá trị nullLà loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    Cho phép nhiều giá trị nullLà loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính


    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69

    CREATE INDEX part_of_name ON customer (name(10));
    00 được công nhận là từ đồng nghĩa với
    CREATE INDEX part_of_name ON customer (name(10));
    01. Tuy nhiên,
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    88 là hình thức ưa thích.
    Các bảng sau đây hiển thị các đặc điểm chỉ mục cho các công cụ lưu trữ hỗ trợ tùy chọn
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    66.
    Bảng & NBSP; 13.2 & NBSP; Đặc điểm chỉ số công cụ lưu trữ InnodbLớp chỉ mụcLoại chỉ mụcLưu trữ giá trị null
    Cho phép nhiều giá trị nullLà loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    Cho phép nhiều giá trị nullLà loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính
    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69
    Là loại quét nullKhông phải là loại quét nullKhông phải là loại quét nullKhóa chínhKhóa chính

    CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
        [index_type]
        ON tbl_name (key_part,...)
        [index_option]
        [algorithm_option | lock_option] ...
    
    key_part: {col_name [(length)] | (expr)} [ASC | DESC]
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
      | {VISIBLE | INVISIBLE}
      | ENGINE_ATTRIBUTE [=] 'string'
      | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
    }
    
    index_type:
        USING {BTREE | HASH}
    
    algorithm_option:
        ALGORITHM [=] {DEFAULT | INPLACE | COPY}
    
    lock_option:
        LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}
    69

    Không

  • N/a

    Độc nhất

  • Đúng

    Mục lục

    Chìa khóa

    CREATE INDEX part_of_name ON customer (name(10));
    2

    Bàn

    Bảng & NBSP; 13.3 & NBSP; Đặc điểm chỉ số công cụ lưu trữ Myisam

  • CREATE INDEX part_of_name ON customer (name(10));
    45,
    CREATE INDEX part_of_name ON customer (name(10));
    46

    Chỉ định khả năng hiển thị chỉ mục.Các chỉ mục có thể nhìn thấy theo mặc định.Một chỉ số vô hình không được sử dụng bởi trình tối ưu hóa.Đặc điểm kỹ thuật về khả năng hiển thị chỉ mục áp dụng cho các chỉ mục khác với các khóa chính (rõ ràng hoặc ẩn).Để biết thêm thông tin, xem Phần & NBSP; 8.3.12, Chỉ số vô hình của Hồi giáo.

  • Các tùy chọn

    CREATE INDEX part_of_name ON customer (name(10));
    47 và
    CREATE INDEX part_of_name ON customer (name(10));
    48 (có sẵn kể từ MySQL 8.0.21) được sử dụng để chỉ định các thuộc tính chỉ mục cho các công cụ lưu trữ chính và phụ.Các tùy chọn được dành riêng để sử dụng trong tương lai.

    Các giá trị được phép là một chuỗi theo nghĩa đen chứa một tài liệu

    CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
    CREATE INDEX idx1 ON t1 ((col1 + col2));
    CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
    ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
    8 hợp lệ hoặc một chuỗi trống ('').Không hợp lệ
    CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));
    CREATE INDEX idx1 ON t1 ((col1 + col2));
    CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);
    ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);
    8 bị từ chối.

    CREATE INDEX part_of_name ON customer (name(10));
    3

    Các giá trị

    CREATE INDEX part_of_name ON customer (name(10));
    47 và
    CREATE INDEX part_of_name ON customer (name(10));
    48 có thể được lặp lại mà không có lỗi.Trong trường hợp này, giá trị được chỉ định cuối cùng được sử dụng.

    Các giá trị

    CREATE INDEX part_of_name ON customer (name(10));
    47 và
    CREATE INDEX part_of_name ON customer (name(10));
    48 không được kiểm tra bởi máy chủ, chúng cũng không bị xóa khi công cụ lưu trữ của bảng được thay đổi.