select*vs redshift和mysql中的select列

s1ag04yj  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(451)

如果我只需要2/3列 SELECT * 除了在select查询中提供这些列之外,redshift和mysql中的i/o或内存的增加/减少是否会导致性能下降?
基本上我想了解比较 select * 以及 select column 在红移和mysql哪个数据库哪个查询比较快,为什么??

fnvucqvd

fnvucqvd1#

因为红移是列式数据库,
从表a中选择column1,clumn2
特定列select查询将非常快,因为redshift只需要扫描/读取特定列。
而select*会慢得多,因为redshift需要扫描和读取所有列。
在mysql的情况下,选择col1,表a中的col2也可以(作为更少的内存/io),但是没有redshift好。
我建议您阅读一些关于列式数据库的非常好的文档,比如redshift,它的分布键概念和编码概念,同时也会极大地影响性能。
https://www.youtube.com/watch?v=iuqgzds-w7a

djmepvbi

djmepvbi2#

对于mysql,可能有一个小的或大的区别:
大:如果 *TEXT 或者 BLOB 2/3中不存在的列。这是因为,在某些情况下,这样的字段需要额外的磁盘命中才能获取。
否则就小了(更多的要解析,更多的要分配内存,等等)

相关问题