浏览 11086 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-15
表记录数41,547,002,即4000w行 使用远程客户端取1000条数据,统计时间: SELECT * FROM `dmsp`.`dmsp_dimension_content` LIMIT 0, 1000;时间2.218s,网络消耗0.547s SELECT `id`, `appid`, `aop`, `t`, `uid`, `sid`, `pid`, `pname`, `bid`, `bname`, `ptype`, `sm`, `sv`, `bt`, `national`, `area`, `ov` FROM `dmsp`.`dmsp_dimension_content` LIMIT 0, 1000;取出所有字段,时间2.250s,网络消耗0.578s 多次查询(改变limit条件避免缓存),时间变化不大。 结论:两者差别几乎可忽略。所以查询所有字段(或者大多数字段)的时候,大可select *来操作。如果某些不需要的字段数据量特别大,还是写清楚字段比较好,因为这样可以减少网络传输。 如果这个表的所有字段组成一个联合索引,那么select 所有字段的效率会提高吗? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-30
怎么没有直接 select pname from table 的比较
|
|
返回顶楼 | |
发表时间:2011-08-30
这个表的所有字段组成一个联合索引,如果索引起效,那么确实可以提高读效率。但是别忘了还有写效率要兼顾呢。这种全部字段都做索引的情况,一般只有数据仓库才做。因为数据库仓库除了固定时间的写处理,基本上都是读。
|
|
返回顶楼 | |