开发者社区> 问答> 正文

由于用户表的基数很大,如何 优化用户表的查询速度?

hibernate的二级缓存机制有用吗?用的是SSH + oracle 架构, 应该选用什么优化查询方案比较好,

还有发现log4j表里面有这句话,是不是放弃了 hibernate的缓存机制?

之前的人为什么要这么做? 难道是hibernate的cache不好用吗?

`
log4j.logger.org.hibernate.cache=ERROR
`

其他的log4j配置:

log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts2=info
log4j.logger.org.springframework=info
log4j.logger.org.hibernate=INFO  
log4j.logger.com.opensymphony.xwork2=info
log4j.logger.org.hibernate.cache=ERROR 

展开
收起
爵霸 2016-03-04 13:48:34 2482 0
2 条回答
写回答
取消 提交回答
  • log4j配置和hibernate没关系。
    查询慢要先从数据库本身下手调优。
    数据库里是否有和查询sql条件有匹配的索引,没有的话建索引。
    如果是写入读取都很大的库,做读写分离。
    数据量极大(亿以上)的情况下,建议考虑分表。

    如果是多点高可用方式部署的系统,代码里加缓存要使用redismemcached这样的中间件。

    2019-07-17 18:52:11
    赞同 展开评论 打赏
  • 优化查询关键是写好SQL语句,优化数据库索引,此外,Log4j 的配置跟 hibernate 的缓存没有关系

    2019-07-17 18:52:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RowKey与索引设计:技巧与案例分析 立即下载
Phoenix 全局索引原理与实践 立即下载
《开放搜索查询分析服务架构分享》 立即下载