国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql中key 、primary key 、unique key 與index區別

2024-07-24 12:53:35
字體:
來源:轉載
供稿:網友

mysql中索引是非常重要的知識點,相比其他的知識點,索引更難掌握,并且mysql中的索引種類也有很多,比如primary key 、unique key 與index等等,本文章向大家介紹mysql中key 、primary key 、unique key 與index區別。

 一、key與primary key區別

CREATE TABLE wh_logrecord ( logrecord_id int(11) NOT NULL auto_increment, user_name varchar(100) default NULL, operation_time datetime default NULL, logrecord_operation varchar(100) default NULL, PRIMARY KEY (logrecord_id), KEY wh_logrecord_user_name (user_name) )

解析:

KEY wh_logrecord_user_name (user_name)

本表的user_name字段與wh_logrecord_user_name表user_name字段建立外鍵
括號外是建立外鍵的對應表,括號內是對應字段
類似還有 KEY user(userid)
當然,key未必都是外鍵

總結:

Key是索引約束,對表中字段進行約束索引的,都是通過primary foreign unique等創建的。常見有foreign key,外鍵關聯用的。

KEY forum (status,type,displayorder)  # 是多列索引(鍵)
KEY tid (tid)                         # 是單列索引(鍵)。

如建表時: KEY forum (status,type,displayorder)

select * from table group by status,type,displayorder 是否就自動用上了此索引,

而當 select * from table group by status 此索引有用嗎?

key的用途:主要是用來加快查詢速度的。

二、KEY與INDEX區別

批注:這部分我仍云里霧里。
KEY通常是INDEX同義詞。如果關鍵字屬性PRIMARY KEY在列定義中已給定,則PRIMARY KEY也可以只指定為KEY。這么做的目的是與其它數據庫系統兼容。 PRIMARY KEY是一個唯一KEY,此時,所有的關鍵字列必須定義為NOT NULL。如果這些列沒有被明確地定義為NOT NULL,MySQL應隱含地定義這些列。一個表只有一個PRIMARY KEY。

MySQL 中Index 與Key 的區別

Key即鍵值,是關系模型理論中的一部份,比如有主鍵(Primary Key),外鍵(Foreign Key)等,用于數據完整性檢否與唯一性約束等。而Index則處于實現層面,比如可以對表個的任意列建立索引,那么當建立索引的列處于SQL語句中的Where條件中時,就可以得到快速的數據定位,從而快速檢索。至于Unique Index,則只是屬于Index中的一種而已,建立了Unique Index表示此列數據不可重復,猜想MySQL對Unique Index類型的索引可以做進一步特殊優化吧。

于是乎,在設計表的時候,Key只是要處于模型層面的,而當需要進行查詢優化,則對相關列建立索引即可。

另外,在MySQL中,對于一個Primary Key的列,MySQL已經自動對其建立了Unique Index,無需重復再在上面建立索引了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富源县| 逊克县| 宝鸡市| 雷山县| 雅江县| 内黄县| 多伦县| 博客| 休宁县| 中阳县| 津南区| 霍州市| 邢台市| 伊宁市| 修文县| 南陵县| 满城县| 湖州市| 河源市| 交口县| 新化县| 锡林浩特市| 高碑店市| 平谷区| 嘉禾县| 松滋市| 肥东县| 呈贡县| 铜山县| 济宁市| 丹巴县| 桦甸市| 集安市| 仙桃市| 卢氏县| 齐齐哈尔市| 襄垣县| 平湖市| 汶上县| 双辽市| 禄劝|