MySQL 数据库部署与查询优化的问题

2016-06-20 18:03:09 +08:00
 jinxueliu
假设有一台数据库服务器, 然后我有几台分布式的计算服务器,
计算服务器需要从数据库服务器上查询大量的数据(某些字段,但是是二进制值),然后再进行本地计算

现在我有几个问题
1 如何加速查询时间;
2 如何加速网络传输时间(计算服务器和数据库服务器不在一个网段) ;
3 第 2 个问题是否可以通过在计算服务器建立备库来解决(变成本地查询),或者有其他更简单的方法?
2559 次点击
所在节点    MySQL
8 条回复
monsterxx03
2016-06-20 18:22:09 +08:00
1.根据查询条件建立 index
3. 可以, 如果从库的延迟在你可接受范围内的话.
jinxueliu
2016-06-20 18:33:13 +08:00
@monsterxx03 延迟是可以接受的,就是维护从库的成本高不高? 这方面不是很有经验,求指教
monsterxx03
2016-06-20 18:48:03 +08:00
如果 replicate 的过程没断开的话没啥维护成本,如果不小心断了要重新 sync 一遍挺折腾的.
如果你的主库有线上的实时查询的话还是建从库来处理你的计算服务器请求吧, 不然会对线上产生压力.
domty
2016-06-21 10:36:03 +08:00
现在 web 服务的性能瓶颈绝大部分都在数据库上。服务器端程序的运行只要代码写的不是特别糟糕都没太大问题。
所以简单点,要么重新优化你的数据库,要么加缓存。

至于建立备库,我看不出有啥需要,反而到时候两个库之间的主从同步还会是个问题。
jinxueliu
2016-06-21 10:52:01 +08:00
@domty 今天测了一下, duration time 只要 0.0013s, 而 fetch time 需要 0.13s, 所以主要的瓶颈还是在传输,
这样子的话,优化数据库和加缓存是否不起作用
jinxueliu
2016-06-21 10:54:14 +08:00
@domty 加缓存能解决传输时间的问题吗?
domty
2016-06-21 10:58:30 +08:00
@jinxueliu
多测试几次看看测试数据吧。
如果确认原因是网络传输不稳定的话,优化数据库的意义没那么大。
加缓存如果缓存数据库和计算服务器不是部署在同一网段还是要考虑网络问题。
jinxueliu
2016-06-21 11:54:08 +08:00
@domty @monsterxx03 好的,谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/287085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX