数据查询别名处理,dao层处理 还是Service层处理分析。

1.DAO层(SQL中)处理(使用AS别名)


`SELECT user_name AS name, user_age AS age FROM users;

资源占用分析:
数据库服务器资源:
CPU:数据库通常会对查询进行优化,包括别名处理。别名的处理在数据库执行计划中属于轻量级操作,几乎不会增加CPU负担。
内存:别名不会显著增加内存占用,因为结果集的行列结构在内存中表示时,只是多了一个别名映射,而实际数据内容不变。
网络:返回的结果集大小不变,因为别名只是改变了列名,数据量没有变化。因此网络传输量不变。
应用服务器资源:
DAO/ORM框架:在将结果集映射到对象时,由于列名已经改变(如从user_name变为name),映射过程可以直接使用别名,不需要额外的转换,因此映射效率较高。
内存:结果集映射到对象时,内存占用与数据量成正比,与别名无关。
CPU:映射过程中,由于列名已经对齐,不需要额外的转换操作,CPU占用较低。
总结:在数据库层面处理别名,对数据库服务器的资源占用几乎可以忽略不计,而应用服务器在映射结果集时效率较高,资源占用较低。
2. 在服务层处理(在服务层代码中转换字段名)

资源占用分析:
数据库服务器资源:与在DAO层处理相比,数据库执行的是原始SQL,没有别名处理,因此资源占用相同。
应用服务器资源:
CPU:服务层需要遍历结果集,对每个对象进行字段映射,这个过程会消耗CPU。特别是当结果集很大时,遍历和转换操作会占用较多的CPU时间。
内存:在转换过程中,需要创建新的对象(如DTO对象),这会增加内存占用。例如,如果结果集有100万条记录,就需要创建100万个DTO对象,而原始DO对象仍然存在(直到被垃圾回收),因此内存占用会显著增加。
总结:在服务层处理别名转换,会增加应用服务器的CPU和内存占用,尤其是在大数据量的情况下。
3. 性能对比
小数据量:两种方式性能差异不大,因为转换操作很快。
大数据量:在服务层处理会导致:
更高的内存占用(创建新对象)。
更多的CPU消耗(遍历和转换)。
更长的响应时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一轮大月亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值