MySQLで関数ベースのインデックスを作成することは可能ですか?
関数ベースのインデックスは、5.6より前のMySQLバージョンでは使用できませんでした。まず、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)
-
MySQLテーブルからインデックスを削除します
MySQLテーブルからインデックスを削除するための構文は、次のとおりです- alter table yourTableName drop index `yourIndexName`; まずテーブルを作成しましょう- Mysql> create table DemoTable1469 -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(40), ->
-
MySQLコンポジットインデックス
複合インデックスは、複数の列で使用されるインデックスです。複数列のインデックスとも呼ばれます。 機能 機能を見てみましょう- MySQLを使用すると、ユーザーは最大16列で構成できる複合インデックスを作成できます。 クエリオプティマイザは、インデックス内のすべての列をテストするクエリに複合インデックスを使用します。 また、最初の列、最初の2列などをテストするクエリにも使用できます。 インデックス定義で列が正しい順序で指定されている場合、同じテーブルで特定の種類のクエリを高速化する単一の複合インデックスを使用できます。 複合インデックスの作成 テーブルの作成中に、