系统有个比较常用查询实在太慢了,需要优化。
本来数据量也不大的,但是由于最开始表的设计问题,再加上需求问题,查询条件分散到了各个表中,并且还是左右like,join了20+张表,导致非常慢。
自己想过的优化方式:
1.改需求,去掉一些查询条件,适当的增加一些数据冗余,不过这样不行,系统跑了两年,去掉查询条件不现实。
2.优化表,但是由于条件实在太分散了,增加的数据也挺多的,而且还涉及到工作流,工作流的节点也要冗余,这样并且觉得这样效率并不高,实现起来也很有难度,所以也排除。
3.改sql,里面的sql查询已经是很复杂了,都快看不懂了,再加上查询条件都是左右like通过关键字的形式去查找,也改不动!
4.通过使用第三方插件,像ES这种,在查询的时候转发到查询服务,这样就可以不用动以前的表,也不用在表里增加冗余数据。而且这个插件使用起来貌似也不难(看了一些demo,单单本地测试,用起来没问题)。
相对来说,这是最方便也是最稳妥的实现方式,但是考虑到环境不一样,到时候会不会出问题,我自己也是第一次使用es,然后有点担心,请教一下英雄好汉 ,哈哈,看看怎么说。
现在的应用环境:
bs架构,服务端三台服务器搞了个集群,nginx做转发,redis做缓存,mongo做文件服务器,数据库用的mysql。
springboot2.0.3 对应的es打算用5.0.0。
目前大概知道es,要做好日志跟data的数据路径修改,想来备份应该是不用的叭。
如果查询服务宕机,再转到以前的查询接口。
现在不知道es如果按照现在我了解的使用还会有哪些坑,请教一下啦~
谢谢~
elasticsearch上生产环境应该注意哪些呢。(JAVA)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题