【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
还有个 Hibernate的问题,一个老项目使用了 Hibernate的 Annotation 技术并且使用了spring的 OpenSessionInViewFilter,而且是基于互联网的,网速慢导致数据库连接增加和连接时间过长。经常坏掉,现在由于历史数据增加,要求分离业务数据到历史表,那还得写hibernate的历史表对应的entity类?对 Hibernate不精通,但现在对这个技术非常厌恶。还是自己写SQL来的实在。 有什么好办法?
所谓基于互联网的是指你的应用程序通过互联网访问数据库? 这确实是一个非常低劣的设计啊。在数据库访问时,数据传输的IO是最为关键的性能瓶颈,在百兆的LAN已经也突出了,更何况一般只有1-2M上下行速率的互联网。
这个问题不使用SQL还是其他来解决的。从根本架构上就要改进。
其次Hibernate是ORM,解决的是实体关系映射,最适合的用途是实体的持久化。你的历史表已经统计更多是视图(不是数据库视图,而是客户视觉的表述)层面的东西,不建议使用hibernate。
引用来自“凤舞凰扬”的答案
所谓基于互联网的是指你的应用程序通过互联网访问数据库? 这确实是一个非常低劣的设计啊。在数据库访问时,数据传输的IO是最为关键的性能瓶颈,在百兆的LAN已经也突出了,更何况一般只有1-2M上下行速率的互联网。
这个问题不使用SQL还是其他来解决的。从根本架构上就要改进。
其次Hibernate是ORM,解决的是实体关系映射,最适合的用途是实体的持久化。你的历史表已经统计更多是视图(不是数据库视图,而是客户视觉的表述)层面的东西,不建议使用hibernate。
OpenSessionInViewFilter 网速慢导致数据库连接增加和连接时间过长
这样的解释明显有错,openSessionInview 是从进入servlet之前开始,到调用servlet结束渲染成html完为止,如果说导致连接增加或者时间过长,你的servlet处理逻辑的时间过长倒是有可能
网速慢只会影响传输时间,和session没有半点关系!分析问题要找实质哦!
Hibernate 这么好的东西 你居然 厌恶!!!
把它弄明白 你会发现无论是程序开发速度,还是程序运行速都会大大的提高
当然前提是 你要把它弄明白
历史数据有多少啊 几亿条?