【实习记】2014-09-02MySQL数据库中key与index区别

 
 

做数据库优化时,使用sql语句调整数据库,在此记录一下。

好博客,好文章

《mysql常用SQL语句》
http://www.cnblogs.com/jevo/p/3257222.html

《MySQL 主键与索引的联系与区别分析》
http://www.jb51.net/article/34037.htm

1. 主键一定是唯一性索引,唯一性索引并不一定就是主键。

2. 一个表中可以有多个唯一性索引,但只能有一个主键。

3. 主键列不允许空值,而唯一性索引列允许空值。

4. 索引可以提高查询的速度。

在MySQL中,INDEX和KEY的概念是一样的。
Key即键值,是关系模型理论中的一部份,用于数据完整性检否与唯一性约束等。而Index则处于实现层面,比如可以对表个的任意列建立索引



修改数据库表结构的语句:废除原主键,建新主键,删除前缀行。

lock tables t_IP0040T1 write;

alter table t_IP0040T1 drop primary key;

alter table t_IP0040T1 drop column Fissuer_acc_range_prefix;

# primary need not
alter table t_IP0040T1 add Fid bigint primary key auto_increment;

alter table t_IP0040T1 add unique key (Fissuer_acc_range_low, Fgcms_product_id);

unlock tables;

 



记录:

alter table t_IP0040T1 add Fid bigint primary key auto_increment;   # 可以直接增加自增主键
# 等于以下两句,primary可省略是为了兼容其他数据库。
alter table t_IP0040T1 add Fid bigint not null;                     # 此时都为0
alter table t_IP0040T1 change Fid Fid bigint key auto_increment;    # 现在是1、2、3、4……
# 如果 key 是 index ,则出错。此处key不等于index。

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。