读书频道 > 网站 > 网页设计 > MySQL管理之道:性能调优、高可用与监控
1.1.18 快速创建、删除、更改索引
14-02-20    奋斗的小年轻
收藏    我要投稿   
本书由资深MySQL专家撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断、表设计、SQL优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、MySQL高可用集群搭建与管理、MySQL服立即去当当网订购

在MySQL5.1.X版本里,创建和删除聚集索引的过程如下:

1)创建一个和原表结构一样的空表,然后创建聚集索引。

2)复制原表的数据到新表,这时会对原表加一个排他锁,其他的会话dml操作会阻塞,从而保证数据的一致性。

3)复制完毕后删除原表,并把新表改名为原表。

创建和删除非聚集索引的过程如下:

1)创建一个和原表结构一样的空表,然后创建非聚集索引。

2)复制原表的数据到新表,这时会对原表加一个共享锁,其他的会话不能更新,但可以查询数据,从而保证数据的一致性。

3)复制完毕后删除原表,并把新表改名为原表。

从MySQL5.5.X版本开始,?创建和删除非聚集索引不用复制整个表的内容了。只须更新索引页,和之前相比,速度会更快。但创建聚集索引(主键)或者是外键时,还是需要复制整个表的内容,因为聚集索引是把 primary key 以及 row data 保存在一起的,而 secondary index 则是单独存放的,有个指针指向primary key。

表1-3是创建和删除非聚集索引的速度对比。


 

从结果上看,MySQL5.5.X的速度更快。

关于快速创建索引的介绍,请参见MySQL5.5手册:

 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站