在MySQL創建表時,默認情況下是否會有索引呢?
MySQL創建表的語法如下所示: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (col_name column-definition,...) [option ...] [partition_options] 其中,可以在列定義部分通過以下語法為列增加索引: col_name column-definition [Index type] [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string'] 需要注意的是,如果沒有明確指定索引,則MySQL創建表的語法并不會默認為表創建索引。
那么,是否推薦為表創建索引呢?
通常情況下,創建索引的目的是為了加速表的查詢操作。如果表的查詢操作并不頻繁,那么創建索引則顯得有些冗余。但如果表的查詢操作頻繁,那么是否為表創建索引將成為一項必要的操作,以滿足查詢效率。
總的來說,為表創建索引具體是否必須取決于表的具體使用場景:
1、如果表用于僅作為數據存儲的場景,不需要頻繁查詢,則不需要為其創建索引。 2、如果表用于查詢場景,并且表的數據量不大,則不必擔心為表創建索引會造成不必要的開銷。 3、如果表用于查詢場景,并且表的數據量較大,那么適當為表創建索引可以明顯提升查詢效率。