15 条回复  ·  1805 次点击
OliverDD 初学 2025-2-7 15:01:19
这句话有个前提,是列式数据库还是行式数据库。如果是行式数据库,没啥区别,对于硬盘层都是读取整行的数据后,在内存中过滤掉你不要的列;而如果是列式数据库,那就涉及到 IO 次数了,只选择你需要的行远比 select *快得多的多。
dylanqqt 初学 2025-2-7 15:03:36
@glacer 除非非常非常多的数据,不然的话区别可以忽略不计,并且 op 说了只返回一条数据,这基本没影响。
LPJD 初学 2025-2-7 15:04:23
看列的数量,返回结果内容的数量,被请求次数。管理系统,大部分情况优不优化 select*丝毫不影响用户体验
foufoufm 小成 2025-2-7 15:31:00
感觉除了 slelect * 性能的问题,还有一点好处是可读性吧?
linora 初学 2025-2-7 15:48:21
对 oracle 深入了解一些的应该都有听过 sga 和 pga sga:全局缓存区 pga:会话对应 server 端进程对应缓存区 select 操作中有一步叫做字段投影,即将 sga 中数据块中相关行的相关的列放到 pga 中去 所以仅 select 一部分列的操作相对 select *,pga 中占用内存会少一些
lvlongxiang199 小成 2025-2-7 16:16:54
为啥不自己构造数据试下呢
12
返回顶部