1
julyclyde 2017-12-29 10:49:26 +08:00
query cache
|
2
HowToMakeLove 2017-12-29 10:52:00 +08:00
随机是个怎么随机的?
你的随机是不是会走索引? |
3
Reign OP @HowToMakeLove 随机读取一些主键 ID 的一些字段
|
4
miniyao 2017-12-29 10:57:21 +08:00
会自动缓存查询数据,但是你无法自定义读取啊。mc redis 你可以在缓存里存、可以取。
|
5
R18 2017-12-29 11:01:35 +08:00
肯定是有缓存的,但不会是全部,我们 200G 的数据用了 7G 内存。具体缓存了啥我也不清楚.
Mysql 的缓存是不可控的(我的理解) Redis 可以指定缓存什么 |
6
timchou 2017-12-29 11:40:10 +08:00
肯定是会缓存的,但是机制很复杂,不是 lz 你说的那样
主流的 Innodb 引擎,有个东西叫 innodb buffer pool,就是数据缓存池,一般专业网站的 mysql 配置,innodb buffer pool size 一般设置为主机内存的 70%多 具体到你的问题 1.不需要删。buffer pool 不是把 table 级别的数据缓存起来的,而且缓存底层的 block,block 是底层的数据结构。 2.就你的场景而言,那确实不需要 redis 了 |
7
RorschachZZZ 2017-12-29 12:19:21 +08:00
redis 一般来解决大并发下数据库扛不住的问题吧。1000 个请求同时跑你这个逻辑可没准了。
|
8
monsterxx03 2017-12-29 12:23:14 +08:00
MySQL 主要有两种缓存,query cache 和 innodb buffer pool, query cache 现在的版本应该已经默认关闭了,以后会废弃.
innodb buffer pool 是个类似 LRU 的内存 cache, 缓存的是 block, 你数据才 4.3 G, 合理设置 innodb_buffer_poolsize, 应该就够了. 自己不用也没法管理这个 cache. 以前写过点关于这个 buffer pool 的 http://blog.monsterxx03.com/2016/07/16/mysql-innodb-buffer-pool/ |
9
Reign OP |
10
monsterxx03 2017-12-29 12:35:40 +08:00
我又看了下,默认 query cache 还是开启的.
T he query cache is deprecated as of MySQL 5.7.20, and is removed in MySQL 8.0. 你起作用的应该就是 query cache, 但这个挺坑的, 对应的 table 里只要有一条数据发生变动,整个 table 的 cache 都会失效,而且还有锁, 但如果你是读远大于写的场景还蛮有用的. 可以看下这篇: http://imysql.com/2014/09/05/mysql-faq-why-close-query-cache.shtml |
11
fuxkcsdn 2017-12-29 12:37:59 +08:00 via iPhone
你要了解的这些《高性能 MySQL 》这本书有
|
13
zhx1991 2017-12-29 13:51:44 +08:00
会
比如给集群弄了一个新的从库, 不对数据进行预热直接访问大概率性能不行 再有如果各种原因, 导致发生 swap 而引起命中率下降, 也会明显的发现性能下降 |
14
zhx1991 2017-12-29 13:53:27 +08:00
你这个数据, 就 50w 很小, 不要轻易上缓存, 因为这样要多余考虑一致性的问题, 增加复杂性
除非读的量真的很大, 可以考虑 redis |
15
runntuu 2017-12-29 14:38:55 +08:00 via iPhone
1. MySQL 会将数据缓存在内存中,具体是缓存整张表还是缓存部分热数据,应该说都有。具体要看采用什么存储引擎,不用存储引擎有不同机制采用不同算法,但目的只有一个,尽快的返回客户端请求的数据。
理想情况当然是服务器内存大于数据文件大小,当数据文件太大时,就不得不依赖于上面说的机制了。 2. 有没有必要用 redis,当前不需要,现在 MySQL 的性能完全够用不是。但是未来需不需要,要看你们预估的数据规模和应用特点了。也不是什么都适合缓存在 redis 里,毕竟每个数据库有他的适用性不是? 3. 上面没有探讨技术细节,只是从宏观角度,希望你能回答你的问题。楼上有人推荐你《高性能 MySQL 》,我也推荐你去看看,看完之后对于数据库设计你会有新的认识。 4. 以上。 |