问个数据库sql执行性能问题!!请懂sql的大神帮忙解答一下

来源:8-3 后台获取商品详情功能开发及PropertiesUtil配置工具,DateTimeUtil时间处理工具开发

qq_谁动了我的奶酪_03546962

2018-05-22

看到视频中老师很多地方使用selectByPrimaryKey 来获取一个pojo对象,然后只是用其中一个属性的值。这样在实际的大型项目中会影响性能吧?

换句话来说,就是 

select a from 表名 where 条件 

select a,b,c,d,e,f,g... from 表名  where 条件

当表中的数据量达到几万,几十万甚至更多时,这两句sql查询时间会有很大差别吧?因为在实际项目,我就遇到过这个情况。

不知是否是因为老师为了方便的原因,不想重新再写sql,所以就直接不停复用mybatis插件生成的这个selectByPrimaryKey sql方法.

希望老师百忙之中能抽空解答一下,这个问题关系实际工作当中,数据库性能调优的场景,谢谢

写回答

2回答

Geely

2018-05-31

你好,亲爱的同学,一期有为了方便的一些心思,如果到百万千万,那可能就要考虑分库分表了。这两个查询时间差异还是挺大的在数据量大的情况下。所以在项目的一些地方,也有精准select字段,也就是说用什么字段,查询什么字段。不过在百万级别以内应该是没有问题的。

性能调优首先是索引要保证能踩上,另外可以用mysql的计划任务,查一下sql语句消耗在哪里,再有的放矢

0
1
qq_谁动了我的奶酪_03546962
非常感谢!
2018-05-31
共1条回复

星辰Iron

2018-05-22

selectByPrimaryKey这个方法意思是通过主键(一般是ID)来查询信息,查询返回的信息是通过某一个类型的数据类型来接收数据并通过ServerResponse.createBySuccess()返回到前端,关键在于XxxMapper.xml里面的SQL语句是查询了多少字段,如果Base_Column_List里面定义了很多字段,那么返回前端的信息就会有冗余。

0
2
星辰Iron
回复
qq_谁动了我的奶酪_03546962
这个就要看前端页面的要求了,如果返回的字段太多的话前端解析起来效率肯定会降低。后端SQL语句查询的话当然也是要查询的字段越多效率越低,本身使用Base_Column_List这个也就是为了固定要查询的字段个数。
2018-05-24
共2条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程