• MClink
    2023-08-26 来自广东
    以前在小公司的时候,还可以玩玩MySQL参数的调优,现在,直接用的都是阿里云的云数据库,啥也动不了,哈哈哈,文中提到异地多活,我看到一篇很好的文章,分享一下给大家:https://baijiahao.baidu.com/s?id=1714292603624190772&wfr=spider&for=pc

    作者回复: 赞!我记得,阿里云好像也可以调吧?嘿嘿,就看你敢不敢了。

    
    
  • humor
    2023-08-03 来自浙江
    innodb_buffer_pool_instances,这个参数为什么能减轻竞争呢,如果它的值设置为2,跟设置为1的区别是什么呢?我理解就算用一个缓冲池,每一页的数据都是分开的,也不会有什么竞争吧。如果两个缓冲池都是缓存全量数据,还会有数据一致性的问题。

    作者回复: 你可以认为每个 buffer pool 里面都有一大堆的数据结构,这些数据结构都需要用锁保护起来。如果只有一个,那么就大家都在等一个锁;如果有两个,那么就可以有两个查询同时拿到锁。 虽然每一页的数据都是分开的,没什么竞争。但是你找到这个页,把这个页放进去缓存的过程,是需要竞争的。

    
    
  • peter
    2023-08-03 来自北京
    请教老师两个问题: Q1:单机MySQL最大连接数一般为多少? 留言里一位朋友说设置了六千,可能吗?难道机器硬件配置非常高吗? Q2:tomcat连接数与CPU核数的矛盾问题。 tomcat服务器一般能够支持500个连接,一个连接一个线程,那就是500个线程。但一般服务器的CPU核数也就是10个左右。线程的数量一般是核数的2倍,也就是20个,怎么会开启500个线程呢?

    作者回复: 1. 都跟你机器性能有关的,也跟你的查询有关。所以最好就还是自己先测试一下,当然这些数据都是 DBA 配置好的,你直接问他们就行。 2. tomcat 已经很久没研究了,超纲了。

    
    
  • ZhiguoXue_IT
    2023-08-02 来自北京
    第一问: 1)调大 query_cache_limit 参数可以在一些情况下提升查询缓存的效果。增加 query_cache_limit 可能会增加缓存的利用率 2)调小 query_cache_limit 参数,适当减小 query_cache_limit 可以减少缓存内碎片的产生,提高缓存的效率 也就是说针对你的业务场景数据,如果业务数据大,适当调大些,如果都是平均,调的太大会出现内存碎片,浪费内存空间 第二问: innodb_log_file_size 和 innodb_log_buffer_size: 存储引擎的事务日志,存储更大的事务日志 max_connections: 最大并发连接数,我们当时最早涉及的一个数据库,因为是老项目,涉及的业务比较多,机器也比较多,所以我们配置的最大连接数特别高,当时记得是6000

    作者回复: 震惊!6000!我好像还没见过调到这么大的。长见识了

    
    
  • Geek_9af983
    2023-08-02 来自北京
    我们有一个数据库开启了查询缓存限制query_cache_limit,一开始默认大小是1MB,发现存储了很多没用的缓存,还导致缓存较满,利用效果不佳,后来仔细排查了几个需要缓存的sql数据,看了下返回结果,调整到128KB之后,有很高效利用到缓存效果

    作者回复: 厉害!

    
    