mysql优化(二) 通过拆分提高表的访问效率
来源:互联网 发布:xampp部署php网站 编辑:程序博客网 时间:2024/06/06 11:47
这里所说的”拆分”,是指对数据表进行拆分。大体有两种拆分方法。
1 第一种方法是垂直拆分,即把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。
如果一个表中某些列常用,而另一些列不常用,则可以采用垂直拆分,另外,垂直拆分可以使得数据行变小,一个数据页就能存放更多的数据,在査询时就会减少I/O次数。其缺点是 需要管理冗余列,査询所有数据需要联合(join)操作。
2 第二种方法是水平拆分,即根据一列或多列数据的值把数据行放到两个独立的表中。 水平拆分通常在以下几种情况下使用。
表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,提高查询速度.表中的数据本来就有独立性.
例如,表中分别记录各个地区的数据或不同时期的数据, 特别是有些数据常用,而另外一些数据不常用需要把数据存放到多个介质上.
例如,移动电话的账单表就可以分成两个表或多个表。最近3个月的账单数据存在一个表 中,3个月前的历史账单存放在另外一个表中,超过1年的历史账单可以存储到单独的存储介质上,这种拆分是最常使用的水平拆分方法.
总结:
水平拆分会给应用增加复杂度,它通常在査询时需要多个表名,査询所有数据需要UNION 操作。在许多数据库应用中,这种复杂性会超过它带来的优点,因为只要索引关键字不大,则 在索引用于査询时,表中增加2〜3倍数据量,査询时也就增加读一个索引层的磁盘次数,所以水平拆分要考虑数量额增长速度,根据实际情况决定是否需要对表进行水平拆分.
0 0
- mysql优化(二) 通过拆分提高表的访问效率
- 提高网站及服务器效率的优化方案 (二)
- 提高mysql的插入效率
- 提高mysql的查询效率
- 提高链表随机访问效率的一种方案
- 使用field-symbols提高访问内表的效率
- mysql 【mysql的设计与优化专题】表的垂直拆分和水平拆分
- 优化 | 提高InnoDB表BLOB列的存储效率
- 通过Iterator提高ArrayList的遍历效率
- 浅谈数据库访问效率的提高
- 浅谈数据库访问效率的提高
- 哈希链表:提高链表访问效率
- 【mysql的设计与优化专题(4)】表的垂直拆分和水平拆分
- 【mysql的设计与优化专题】表的垂直拆分和水平拆分
- web程序中全优化(二)之 提高你的JavaScript效率Tips
- mysql处理上百万条的数据库如何优化语句来提高处理查询效率
- 如何提高网页的效率(二)
- MySQL查询优化:LIMIT 1避免全表扫描提高查询效率
- android png和jpg的区别及使用场景
- 我设计的策略模式(Strategy)
- 右侧带按钮的TextBox
- 美国监管机构关注区块链议题
- Spring 注解学习@ResponseBody,@RequestBody,@PathVariable
- mysql优化(二) 通过拆分提高表的访问效率
- [生存志] 第99节 白起奋威屠百万
- java servlet 基础
- webuploader 简单实用
- GDAL C#读取shp中文属性值乱码问题
- 只有一条下划线的TextBox
- IDEA安装插件出现incompatible错误
- HTTP请求方法
- 高通 8x26 andorid light sensor(TSL258x) 开发