1
shakeyo 2020-09-21 12:18:21 +08:00
单次查询几百 ms 已经算慢了吧,建议还是优化下查询语句或者数据字段,表是否划分合理
要是一致性要求不高,也可以走多个 mysql 节点,分流处理 |
2
pcbl 2020-09-21 12:21:13 +08:00 via iPhone
同时间的相同查询那么多,不应该扔到 redis 或者其他缓存中吗?
|
3
blless 2020-09-21 12:21:55 +08:00 via Android
问就是分库分表
|
4
zoharSoul 2020-09-21 13:46:03 +08:00
没执行计划也没表结构, 这个很难分析...
正常来说 单表千万的话还好 |
5
wangyzj 2020-09-21 13:48:12 +08:00
千万还好吧
|
6
keepeye 2020-09-21 13:49:53 +08:00
数据库不是单独服务器吧?
|
7
xmh51 2020-09-21 13:51:46 +08:00
先 EXPLAIN sql 看下 sql 的执行状态,另外程序也需要看下 有时候不一定是 mysql 的问题
|
8
guijianshi01 2020-09-21 13:52:08 +08:00
这种慢查询单独走一个从库.这样不阻塞正常业务流程
|
9
bruce0 2020-09-21 13:52:25 +08:00
优化也就常见的几种吧,首先优化 sql 语句,分表分库,Redis,多主机做主从分离
|
10
newtype0092 2020-09-21 13:53:00 +08:00
我刚试了下在过亿的表里单 int 类型索引查询不到 20 毫秒
|
11
wakzz 2020-09-21 13:57:26 +08:00
先晒一下 sql 和表索引结构,单 sql 耗时 1 秒还是挺久的
|
12
limuyan44 2020-09-21 14:51:48 +08:00
又到了上帝才知道的环节,没准你索引加的烂呢,没准 sql 写的烂呢,没准根本没有 20 个人用呢。
|
13
littlewing 2020-09-21 15:24:52 +08:00 via iPhone
千万 不到 1 秒,绝对没用上索引吧
|
14
cnoder 2020-09-21 16:00:27 +08:00
一条一秒也有点长,看下 sql
|
15
huntcool001 2020-09-22 00:21:08 +08:00
把你 schema 晒出来. 正常不可能这样的.
|
16
realpg 2020-09-22 01:12:47 +08:00
单查询 1s 这叫不慢?!!
|
17
594duck 2020-09-22 04:39:05 +08:00 via iPhone
mysql 到千万就是瓶颈,扫描行数多一点就是全盘扫描。你的表宽一点也是悲剧
|
18
chogath 2020-09-22 09:59:35 +08:00
检查索引,SQL,都没问题的话检查下 MySQL 版本,还没问题的话考虑上缓存中间件( Redis )或者搜索引擎( Elasticsearch )
|
19
PIECExx 2020-09-22 16:27:59 +08:00
1.想办法优化表结构+索引; 2.我看前面已经有人提了,就是加一层 redis,每次相同条件的 sql,查完入 redis,下次再有并发来就不查库,说白了,做这一层其实相当于把原有的结构打破了重做,原先是所有操作直接连库,现在就不行了,是比较麻烦的,不过做完肯定基本是能用的; 3.拆表,这个更麻烦,我都懒得解释了。。。。
|