有一个表 T 含100亿条记录select * from t where ... 该语句会遍历全表100亿记录,最终结果假定为100条返回记录.
如果没有用分区表,T表数据存储在一个磁盘上,这条语句会花: 5分钟请问T表分区,是否会如下所述:
如果采用分区表,T表数据平均存储在100个磁盘上,那么这条语句理论上只花约: 5分钟/100,
原因在于,同样遍历100亿条记录,如果一个磁盘会很慢,如果T表分散存储在100个磁盘上,那么100个磁盘同时遍历记录,自然会成倍提高查询速度(当然CUP想象无限快)
以上描述是否正确,请高人指点
如果没有用分区表,T表数据存储在一个磁盘上,这条语句会花: 5分钟请问T表分区,是否会如下所述:
如果采用分区表,T表数据平均存储在100个磁盘上,那么这条语句理论上只花约: 5分钟/100,
原因在于,同样遍历100亿条记录,如果一个磁盘会很慢,如果T表分散存储在100个磁盘上,那么100个磁盘同时遍历记录,自然会成倍提高查询速度(当然CUP想象无限快)
以上描述是否正确,请高人指点
解决方案 »
- mysql的错误,请大家帮忙看看是什么原因
- create table `message`( `id` tinyint(2) no null auto_increment primary key, `use
- 如何在mysql存储过程中处理select语句返回的多行结果?
- SQL
- MYsql的procedure里面一个查询sql放在一个变量里面 怎么执行它
- mysql 中delete 语句能使用limit语句吗
- 急啊 ,饭碗要没了
- 那位大虾有MYSQL的操作手册?
- 问,运行于WINDOWS的MYSQL究竟有没有时间限制呢?
- 关于join查询时 where的执行时间
- 求解一条sql语句
- flush-logs更新binlog文件的问题
· 一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE 语句的数据可以只保存在一个或多个分区内,这样在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。
· 通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。