12
返回列表 发新帖
楼主: skiiwujinhua

垂直分表

[复制链接]
论坛徽章:
10000
绿钻
日期:2016-02-22 15:43:08绿钻
日期:2016-03-01 18:19:01绿钻
日期:2016-02-22 15:43:08绿钻
日期:2016-03-01 18:19:01绿钻
日期:2015-12-16 18:42:35绿钻
日期:2015-12-11 00:18:01绿钻
日期:2015-09-10 13:05:08绿钻
日期:2015-12-11 00:18:01绿钻
日期:2015-09-10 13:05:08绿钻
日期:2015-09-10 13:05:08
11#
发表于 2016-1-27 11:38 | 只看该作者
asdf2110 发表于 2016-1-19 15:22
你这是从应用的角度看
从数据库实现角度看,innodb 属于行存储引擎,数据库从磁盘读取数据时也不是你想的 ...

学习了

使用道具 举报

回复
论坛徽章:
7
优秀写手
日期:2013-12-18 09:29:08问答徽章
日期:2014-02-07 23:48:392014年新春福章
日期:2014-02-18 16:50:09马上有车
日期:2014-02-18 16:50:09马上有钱
日期:2014-10-26 21:51:11暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47
12#
 楼主| 发表于 2016-2-26 08:35 | 只看该作者
asdf2110 发表于 2016-01-19 15:22

你这是从应用的角度看
从数据库实现角度看,innodb 属于行存储引擎,数据库从磁盘读取数据时也不是你想的那样一个字段一个字段的读,而是按页面读取,比如8K,这8K页面里面可能包含100行数据,然后再一行行读出来,判断是否满足了 where 的过滤条件,满足了,还要再看投影,就是你说的select后面的列,决定哪些列返回给客户端。
这个过程比较耗费时间的就是 8K页面从磁盘读到内存,当表比较大时,这样的8k 页面就比较多了;按列拆分的话IO自然降低了,当然 增加了 JOIN 的开销,所以拆分也要谨慎。
不知道有没有说清楚。
谢谢你的回复,很清楚。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表