mysqlインデックス文(作成と表示)
6820 ワード
mysqlインデックス文 mysqlインデックス文 インデックスshow index fromデータベーステーブル名 を表示 PRIMARY KEY(プライマリ・キー・インデックス) UNIQUE(ユニークインデックス) INDEX(通常インデックス) FULLTEXT(全文インデックス) 複数カラムインデックス(結合インデックス/結合インデックス) 1.通常のインデックス. 2.ユニークなインデックス. インデックスを表示 インデックス文 を作成インデックス文 を作成 mysqlインデックスの作成と削除 mysqlインデックスの作成と削除 mysqlインデックス文
MYISAMストレージエンジンはトランザクション、テーブルロック設計、全文インデックスをサポートしないその設計は主にOLAPアプリケーション向けMyISAMはトランザクションをサポートしない、MyISAMはMVCCをサポートしない、MyISAMは外部キーをサポートしない
InnoDBストレージエンジンは、トランザクションのサポート、外部キーのサポート、非ロックリードのサポート、MVCCのサポート、ローロックの設計を主にOLT Pアプリケーション向けに設計しています.全文インデックスはサポートされていません
インデックスshow index fromデータベーステーブル名の表示
alter tableデータベースadd indexインデックス名(データベースフィールド名)
PRIMARY KEY(プライマリ・キー・インデックス)
ALTER TABLE
UNIQUE(ユニークインデックス)
ALTER TABLE
INDEX(一般索引)
mysql>ALTER TABLE
FULLTEXT(フルテキストインデックス)
ALTER TABLE
複数カラムインデックス(結合インデックス/結合インデックス)
ALTER TABLE
1.一般索引.
これは最も基本的なインデックスであり、制限はありません.インデックスを作成するには、(1)CREATE INDEX indexName ON tableColumns(length);CHARの場合、VARCHRタイプであれば、lengthはフィールドの実際の長さより小さくてもよい.BLOBとTEXTタイプの場合は、lengthを指定する必要があります.以下同じです.(2)表構造の修正:ALTER tableName ADD INDEX[indexName]ON(tableColumns)(3)表の作成時に直接指定:CREATE TABLE tableName([...],INDEX[indexName](tableColumns)
2.一意のインデックス.
前述の通常のインデックスと同様に、インデックス列の値は一意でなければなりませんが、空の値を許可します.結合インデックスの場合、カラム値の組合せは一意でなければなりません.インデックスの作成には、(1)インデックスの作成:CREATE UNIQUE INDEX indexName ON tableColumns(length))(2)テーブル構造の変更:ALTER tableName ADD UNIQUE[indexName]ON(tableColumns(length))(3)テーブルの作成時に直接指定:CREATE TABLE tableName([...]、UNIQUE[indexName](tableColumns)
索引の表示
show index from tb_wz_all;
索引文の作成
CREATE [UNIQUE|CLUSTERED] INDEX INDEX_NAME ON TABLE_NAME(PROPERTY_NAME)UNIQUEとCLUSTERDはオプションであり、それぞれユニークインデックスとクラスタリングインデックスを作成し、具体的にはUNIQUE:このインデックスの各インデックス値がユニークなデータにのみ対応することを示す.CLUSTERD:作成するインデックスのクラスタ化されたインデックスを表します.つまり、インデックス・アイテムの順序がテーブルに記録された物理的順序と一致するインデックス組織です.
索引文の作成
通常インデックスALTER TABLE em_の作成ca ADD INDEX INDEX_CA_CONTACT (
mysqlインデックスの作成と削除
インデックスの作成は、CREATE TABLE文で行うことも、CREATE INDEXまたはALTER TABLEでテーブルにインデックスを追加することもできます.インデックスの削除は、ALTER TABLE文またはDROP INDEX文で実行できます.
(1)ALTER TABLE文を用いてインデックスを作成する.構文は次のとおりです:alter table table_name add index index_name (column_list) ; alter table table_name add unique (column_list) ; alter table table_name add primary key (column_list) ; これには、通常のインデックス、UNIQUEインデックス、PRIMARY KEYインデックスの3種類のインデックスを作成するフォーマットが含まれています.table_nameはインデックスを追加するテーブル名、column_listは、どのカラムをインデックスするかを示し、複数カラムの場合、各カラム間をカンマで区切る.インデックス名index_nameはオプションで、デフォルトではMySQLは最初のインデックス列に基づいて名前を付けます.また、ALTER TABLEでは、単一の文で複数のテーブルを変更できるため、複数のインデックスを同時に作成できます.インデックスの作成例は、mysql>alter table table_test add index index_test1(name) ; Query OK,2 rows affected(0.08 sec)(2)CREATE INDEX文を使用してテーブルにインデックスを追加します.通常インデックスとUNIQUEインデックスの2種類を追加できます.フォーマットは次のとおりです:create index index_name on table_name (column_list) ; create unique index index_name on table_name (column_list) ;
インデックスの作成例は次のとおりです.
mysql>create index index_test2 on table_test(age);
Query OK, 2 rows affected (0.08 sec)
説明:table_name、index_nameとcolumn_リストにはALTER TABLE文と同じ意味があり、インデックス名はオプションではありません.また、CREATE INDEX文でPRIMARY KEYインデックスを作成することはできません.(3)インデックスを削除する.インデックスを削除するには、ALTER TABLE文またはDROP INDEX文を使用します.DROP INDEXはALTER TABLE内部で文として処理でき、そのフォーマットは以下の通りである:drop index index_name on table_name ; alter table table_name drop index index_name ; alter table table_name drop primary key ; ここで、前の2つの文では、table_が削除されています.nameのインデックスindex_name.最後の文では、PRIMARY KEYインデックスを削除する場合にのみ使用されます.1つのテーブルにPRIMARY KEYインデックスが1つしかないため、インデックス名を指定する必要はありません.PRIMARY KEYインデックスが作成されていないが、テーブルに1つ以上のUNIQEインデックスがある場合、MySQLは最初のUNIQEインデックスを削除します.テーブルからカラムを削除すると、インデックスが影響を受けます.複数のカラムの組合せのインデックスの場合、カラムのいずれかを削除すると、そのカラムもインデックスから削除されます.インデックスを構成するすべてのカラムを削除すると、インデックス全体が削除されます.次のコードのようにインデックスを削除します:mysql>drop index name on table_test ; Query OK, 2 rows affected (0.08 sec)
mysqlインデックスの作成と削除
以下の例では、
3、クエリーデータテーブルインデックスmysql>SHOW INDEX FROM
MYISAMストレージエンジンはトランザクション、テーブルロック設計、全文インデックスをサポートしないその設計は主にOLAPアプリケーション向けMyISAMはトランザクションをサポートしない、MyISAMはMVCCをサポートしない、MyISAMは外部キーをサポートしない
InnoDBストレージエンジンは、トランザクションのサポート、外部キーのサポート、非ロックリードのサポート、MVCCのサポート、ローロックの設計を主にOLT Pアプリケーション向けに設計しています.全文インデックスはサポートされていません
インデックスshow index fromデータベーステーブル名の表示
alter tableデータベースadd indexインデックス名(データベースフィールド名)
PRIMARY KEY(プライマリ・キー・インデックス)
ALTER TABLE
table_name
ADD PRIMARY KEY ( column
) UNIQUE(ユニークインデックス)
ALTER TABLE
table_name
ADD UNIQUE ( column
) INDEX(一般索引)
mysql>ALTER TABLE
table_name
ADD INDEX index_name ( column
) FULLTEXT(フルテキストインデックス)
ALTER TABLE
table_name
ADD FULLTEXT ( column
) 複数カラムインデックス(結合インデックス/結合インデックス)
ALTER TABLE
table_name
ADD INDEX index_name ( column1
, column2
, column3
) 1.一般索引.
これは最も基本的なインデックスであり、制限はありません.インデックスを作成するには、(1)CREATE INDEX indexName ON tableColumns(length);CHARの場合、VARCHRタイプであれば、lengthはフィールドの実際の長さより小さくてもよい.BLOBとTEXTタイプの場合は、lengthを指定する必要があります.以下同じです.(2)表構造の修正:ALTER tableName ADD INDEX[indexName]ON(tableColumns)(3)表の作成時に直接指定:CREATE TABLE tableName([...],INDEX[indexName](tableColumns)
2.一意のインデックス.
前述の通常のインデックスと同様に、インデックス列の値は一意でなければなりませんが、空の値を許可します.結合インデックスの場合、カラム値の組合せは一意でなければなりません.インデックスの作成には、(1)インデックスの作成:CREATE UNIQUE INDEX indexName ON tableColumns(length))(2)テーブル構造の変更:ALTER tableName ADD UNIQUE[indexName]ON(tableColumns(length))(3)テーブルの作成時に直接指定:CREATE TABLE tableName([...]、UNIQUE[indexName](tableColumns)
索引の表示
show index from tb_wz_all;
索引文の作成
CREATE [UNIQUE|CLUSTERED] INDEX INDEX_NAME ON TABLE_NAME(PROPERTY_NAME)UNIQUEとCLUSTERDはオプションであり、それぞれユニークインデックスとクラスタリングインデックスを作成し、具体的にはUNIQUE:このインデックスの各インデックス値がユニークなデータにのみ対応することを示す.CLUSTERD:作成するインデックスのクラスタ化されたインデックスを表します.つまり、インデックス・アイテムの順序がテーブルに記録された物理的順序と一致するインデックス組織です.
索引文の作成
通常インデックスALTER TABLE em_の作成ca ADD INDEX INDEX_CA_CONTACT (
CA_CONTACT
); 結合インデックスALTER TABLE em_の作成ca ADD INDEX INDEX_CA_CONTACT ( CA_CONTACT
,‘CA_NAME’); ユニークインデックス作成create unique index INDEX_CA_ALIAS on em_ca(CA_ALIAS); プライマリ・キー索引の作成alter tableテーブル名add primary key(カラム名)索引の削除ALTER TABLE admin_credence_info DROP INDEX ACI_PK; mysqlインデックスの作成と削除
インデックスの作成は、CREATE TABLE文で行うことも、CREATE INDEXまたはALTER TABLEでテーブルにインデックスを追加することもできます.インデックスの削除は、ALTER TABLE文またはDROP INDEX文で実行できます.
(1)ALTER TABLE文を用いてインデックスを作成する.構文は次のとおりです:alter table table_name add index index_name (column_list) ; alter table table_name add unique (column_list) ; alter table table_name add primary key (column_list) ; これには、通常のインデックス、UNIQUEインデックス、PRIMARY KEYインデックスの3種類のインデックスを作成するフォーマットが含まれています.table_nameはインデックスを追加するテーブル名、column_listは、どのカラムをインデックスするかを示し、複数カラムの場合、各カラム間をカンマで区切る.インデックス名index_nameはオプションで、デフォルトではMySQLは最初のインデックス列に基づいて名前を付けます.また、ALTER TABLEでは、単一の文で複数のテーブルを変更できるため、複数のインデックスを同時に作成できます.インデックスの作成例は、mysql>alter table table_test add index index_test1(name) ; Query OK,2 rows affected(0.08 sec)(2)CREATE INDEX文を使用してテーブルにインデックスを追加します.通常インデックスとUNIQUEインデックスの2種類を追加できます.フォーマットは次のとおりです:create index index_name on table_name (column_list) ; create unique index index_name on table_name (column_list) ;
インデックスの作成例は次のとおりです.
mysql>create index index_test2 on table_test(age);
Query OK, 2 rows affected (0.08 sec)
説明:table_name、index_nameとcolumn_リストにはALTER TABLE文と同じ意味があり、インデックス名はオプションではありません.また、CREATE INDEX文でPRIMARY KEYインデックスを作成することはできません.(3)インデックスを削除する.インデックスを削除するには、ALTER TABLE文またはDROP INDEX文を使用します.DROP INDEXはALTER TABLE内部で文として処理でき、そのフォーマットは以下の通りである:drop index index_name on table_name ; alter table table_name drop index index_name ; alter table table_name drop primary key ; ここで、前の2つの文では、table_が削除されています.nameのインデックスindex_name.最後の文では、PRIMARY KEYインデックスを削除する場合にのみ使用されます.1つのテーブルにPRIMARY KEYインデックスが1つしかないため、インデックス名を指定する必要はありません.PRIMARY KEYインデックスが作成されていないが、テーブルに1つ以上のUNIQEインデックスがある場合、MySQLは最初のUNIQEインデックスを削除します.テーブルからカラムを削除すると、インデックスが影響を受けます.複数のカラムの組合せのインデックスの場合、カラムのいずれかを削除すると、そのカラムもインデックスから削除されます.インデックスを構成するすべてのカラムを削除すると、インデックス全体が削除されます.次のコードのようにインデックスを削除します:mysql>drop index name on table_test ; Query OK, 2 rows affected (0.08 sec)
mysqlインデックスの作成と削除
以下の例では、
table_name
はデータテーブル名、index_name
はインデックス名、column listはフィールドリスト(例えば、id
、order_id
)を表す.1.インデックスの作成は、CREATE TABLE文で行うことも、CREATE INDEXまたはALTER TABLEでテーブルにインデックスを追加することもできます.次のコマンド文では、プライマリ・キー・インデックス(PRIMARY KEY)、UNIQUE、INDEXの作成方法を示します.mysql>ALTER TABLE table_name
ADD INDEX index_name
(column list); mysql>ALTER TABLE table_name
ADD UNIQUE index_name
(column list); mysql>ALTER TABLE table_name
ADD PRIMARY KEY index_name
(column list); mysql>CREATE INDEX index_name
ON table_name
(column_list); mysql>CREATE UNIQUE INDEX index_name
ON table_name
(column_list); 例:mysql>ALTER TABLE article
ADD INDEX id
;//articleテーブルにidインデックスを追加するか、mysql>ALTER TABLE article
ADD INDEX(id
、order_id
)を追加します.articleテーブルにidインデックスを追加order_idインデックス2、再構築インデックス再構築インデックスは、通常のデータベースメンテナンス操作でよく使用されます.データベースが長時間実行されると、インデックスが破損する可能性があります.この場合、再構築する必要があります.データのインデックスの再構築は、取得効率の向上に役立ちます.mysql> REPAIR TABLE table_name
QUICK; 3、クエリーデータテーブルインデックスmysql>SHOW INDEX FROM
table_name
;4、削除インデックス削除インデックスは、ALTER TABLEまたはDROP INDEX文を使用して実現できます.DROP INDEXはALTER TABLE内部で文として処理することができ、そのフォーマットは以下の通りである:mysql>DROP index index_name
ON table_name
(column list);mysql>ALTER TABLE table_name
DROP INDEX index_name
(column list); mysql>ALTER TABLE table_name
DROP UNIQUE index_name
(column list); mysql>ALTER TABLE table_name
DROP PRIMARY KEY index_name
(column list); 前の3つの文でtable_が削除されました.nameのインデックスindex_name.最後の文では、PRIMARY KEYインデックスを削除する場合にのみ使用されます.1つのテーブルにPRIMARY KEYインデックスが1つしか存在しないため、インデックス名を指定しないこともできます.PRIMARY KEYインデックスが作成されていないが、テーブルに1つ以上のUNIQEインデックスがある場合、MySQLは最初のUNIQEインデックスを削除します.テーブルからカラムを削除すると、インデックスが影響を受けます.複数のカラムの組合せのインデックスの場合、カラムのいずれかを削除すると、そのカラムもインデックスから削除されます.インデックスを構成するすべてのカラムを削除すると、インデックス全体が削除されます.