2017-10-17 15 views
0

書面如果我跑SHOW COLUMNS FROM table_name我得到:什麼決定,如果MUL爲SQL列

+-----------------+--------------+------+-----+---------+----------------+ 
| Field   | Type   | Null | Key | Default | Extra   | 
+-----------------+--------------+------+-----+---------+----------------+ 
| convo_id  | int(11)  | NO | PRI | NULL | auto_increment | 
| client_convo_id | varchar(255) | NO |  | NULL |    | 
| user_id   | int(11)  | NO | MUL | NULL |    | 
+-----------------+--------------+------+-----+---------+----------------+ 

望着Key -column,很清楚什麼PRI手段,即主鍵。根據我的研究,MUL代表多個,這意味着在這個表中可以有多個相同的user_id實例。但是client_convo_id字段呢?它在Key列中沒有值。這是什麼意思?我懷疑表格中可能有多個條目與client_convo_id相同。那麼,爲什麼client_convo_id在其Key列中沒有MUL

+0

'SHOW CREATE TABLE table_name'提供更多信息 –

回答

3

MUL表示該字段是一個非唯一索引的一部分,因爲在這裏找到答案: Another question

沒有什麼在client_convo_id的鍵列,因爲那場沒有連接到它的索引。

並非SQL中的所有列都有索引。通常只有一個用於選擇(在where或join子句中)的索引,因此查詢運行得更快。這是關於此事的official documentation