Mysql のインデックス タイプを変更する方法: 1. 「DROP INDEX インデックス名 ON テーブル名;」ステートメントを使用して、元の指定インデックスを削除します。 2. 「CREATE インデックス タイプ キーワード INDEX インデックス名 ON テーブル名」を使用します。 (列名 [長さ])」ステートメントは、型を変更するために同じ名前のインデックスを作成します。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
MySQL ではインデックスを変更するための直接的な指示はありません。通常、インデックスを偽装して変更するには、最初に元のインデックスを削除し、次に必要に応じて同じ名前のインデックスを作成する必要があります。
mysql インデックス タイプの変更
#1. 元のインデックスを削除します
インデックスが削除されると、が不要になった場合は、DROP INDEX ステートメントを使用してインデックスを削除できます。
文法形式:
DROP INDEX <索引名> ON <表名>
構文の説明は次のとおりです:
<インデックス名>: 削除するインデックスの名前。
<テーブル名>: インデックスが配置されているテーブル名を指定します。
例:
tb_stu_info2 データテーブルのインデックス情報
から確認できます。出力結果:「Key_name: height」--インデックスの名前は「height」、「Index_type: BTREE」--インデックスで使用されているタイプは「BTREE」です
テーブル内のインデックスの高さを削除しますtb_stu_info2
DROP INDEX height ON tb_stu_info2;
2. 同じ名前のインデックスを作成します
インデックスの作成に特に使用される CREATE INDEX ステートメントを使用して、既存のテーブルですが、このステートメントでは主キーを作成できません。
構文形式:
CREATE <索引名> INDEX ON <表名> (<列名> [<长度>] [ ASC | DESC])
構文の説明は次のとおりです:
<インデックス名>: インデックス名を指定します。テーブルには複数のインデックスを作成できますが、各インデックスにはテーブル内で一意の名前が付けられます。
<テーブル名>: インデックスを作成するテーブルの名前を指定します。
<カラム名>: インデックスを作成するカラム名を指定します。通常、クエリ ステートメントの JOIN 句と WHERE 句に頻繁に現れる列をインデックス列として使用することを検討できます。
<長さ>: オプション。列の前にある長さの文字を使用してインデックスを作成することを指定します。列の一部を使用してインデックスを作成すると、インデックス ファイルのサイズが削減され、インデックス列が占める領域を節約できます。場合によっては、列のプレフィックスのみにインデックスを付けることができます。インデックス列の長さの最大制限は 255 バイト (MyISAM および InnoDB テーブルの場合は 1000 バイト) です。インデックス列の長さがこの制限を超える場合は、列のプレフィックスを使用してのみインデックスを作成できます。さらに、BLOB または TEXT 型の列も接頭辞インデックスを使用する必要があります。
ASC|DESC: オプション。 ASC はインデックスが昇順でソートされることを指定し、DESC はインデックスが降順でソートされることを指定します。デフォルトは ASC です。
CREATE INDEX height ON tb_stu_info2 (height(8));