Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 함수 기반 인덱스를 가질 수 있습니까?

<시간/>

함수 기반 인덱스는 MySQL 5.6 미만 버전에서는 불가능했습니다. 먼저 MySQL에서 함수 기반 인덱스를 생성하기 위해 테이블을 생성합니다.

mysql> create table FunctionIndexDemo
   - > (
   - > FirstName varchar(100)
   - > );
Query OK, 0 rows affected (0.70 sec)

함수 기반 인덱스를 만드는 구문을 살펴보겠습니다.

create index index_name on yourTableName (column_name(IntegerSize));

다음은 쿼리입니다.

mysql> create index indFirstName on FunctionIndexDemo (FirstName(6));
Query OK, 0 rows affected (0.56 sec)
Records: 0  Duplicates: 0  Warnings: 0

색인이 있는지 확인하려면.

mysql> SHOW INDEX FROM FunctionIndexDemo;

다음은 출력입니다.

+-------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table             | Non_unique | Key_name     | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+-------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| functionindexdemo |          1 | indFirstName |            1 | FirstName   | A         |           0 |        6 |   NULL | YES  | BTREE      |         |               | YES     |
+-------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
1 row in set (0.24 sec)