首页 / MYSQL / Mysql 表分区和性能
Mysql 表分区和性能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql 表分区和性能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1685字,纯文字阅读大概需要3分钟。
内容图文
![Mysql 表分区和性能](/upload/InfoBanner/zyjiaocheng/496/3507e7e760ac4d9e91647d0b34394acc.jpg)
以下内容节选自<Mysql技术内幕InnoDB存储引擎>
mysql表分区:
分区功能并不是所有存储引擎都支持的,如CSV、MERGE等就不支持。mysql数据库支持的分区类型为水平分区(指一张表中不同行的记录分配到不同的物理文件中),不支持垂直分区(指将同一表中的不同列分配到不同的物理文件中)。此外,mysql数据库的分区是局部分区索引,一个分区中既存放了数据又存放了索引。
当前Mysql数据库支持以下几种类型的分区:
Range分区:行数据基于一个给定连续区间的列值放入分区。Mysql数据库5.5开始支持Range Columns分区。
List分区:和Range分区类似,只是List分区面向的是离散的值。Mysql数据库5.5开始支持List Columns分区。
Hash分区:根据用户自定义的表达式的返回值来进行分区,返回值不能为负数。
Key分区:根据Mysql数据库提供的哈希函数来进行分区。
分区和性能:
数据库应用分为两类:一类是OLTP(在线事务处理),如博客、电子商务、网游等;另一类是OLAP(在线分析处理),如数据仓库、数据集市。
对于OLAP的应用,分区的确可以很好的提高查询性能,因为OLAP应用的大多数查询需要频繁的扫描一张很大的表,如果进行分区则只需要扫描相应的部分即可。
而对于OLTP应用一般情况下不可能获取一张大表中10%的数据,大部分都是通过索引返回若干记录。对于一张大表,一般的B+树需要2~3次磁盘IO。举个列子,一张数据量为1000万行的表B+树高度为3,将他分为10个区,100万行的B+树高度是2。单独对于Key索引的查询在基于分区设计的情况下查询开销为2次IO,而原表设计需要2到3次IO。而如果对于其他列索引的查询就可能需要10 * 2 = 20次IO。分区查询耗时将远远大于没有进行分区设计数据表的查询耗时。
结论:
分区并不适用于所有的应用,应该根据实际情况规划自己的分区设计。
Mysql 表分区和性能
标签:区间 频繁 文件中 获取 计数 返回值 提高 定义 设计
本文系统来源:http://www.cnblogs.com/chrischris/p/8031894.html
内容总结
以上是互联网集市为您收集整理的Mysql 表分区和性能全部内容,希望文章能够帮你解决Mysql 表分区和性能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。