求各位师傅指点一二,下面配置是我自己互联网做了点功课后胡乱设置的,先谢谢。
数据库读写很频繁,Mysql 数据表单个表就有15GB左右。
Mysql专用服务器,CPU 56线程,64GB内存
default_storage_engine = InnoDB performance_schema_max_table_instances = 400 table_definition_cache = 400 skip-external-locking key_buffer_size = 10240M max_allowed_packet = 100G table_open_cache = 4096 sort_buffer_size = 128M net_buffer_length = 4K read_buffer_size = 128M read_rnd_buffer_size = 128M myisam_sort_buffer_size = 512M thread_cache_size = 512 query_cache_size = 2048M tmp_table_size = 512M max_connections = 16000 max_connect_errors = 100 open_files_limit = 65535 expire_logs_days = 10 slow_query_log=1 long_query_time=3 innodb_buffer_pool_size = 55296M innodb_log_file_size = 8192M innodb_log_buffer_size = 512M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 innodb_max_dirty_pages_pct = 90 innodb_read_io_threads = 56 innodb_write_io_threads = 56复制代码
山西省网友说:挽尊,帮顶
楼下的大佬会
江苏省网友说:别瞎说,我不是大佬,我也不会,楼下呢?会吗?
广东省网友说:要我说实话嘛?
把my.cnf.huge扔过去就好了,其它的,做来做去基本是负优化。
性能主要取决于:
1. 硬件够强大
2. 程序不要有慢查询和频繁锁表
甘肃省网友说:就是太多锁表了,痛苦。
湖南省网友说:找开发改程序
如果找不到,那就加硬件,特别是硬盘,nvme用上
另外,如果表是myisam,如果可能改成innodb。
想靠调mysql的参数来解决这个,希望不大
河南省网友说:innodb_buffer_pool_size = 55296M 这个是认真的吗?
青海省网友说:是的,有个网站说这个地方可以设置物理内存的80%,不太懂就按文章说的设置了。
湖南省网友说:明白了,谢谢。
台湾省网友说:如果客观上做不到分库分表的分布式数据库。
那就在程序上下手,mysql的配置优化解决不了问题。
江苏省网友说:哎,程序很难了,程序已经改的很乱了,而且有点小流量,也不太敢动。
广东省网友说:又不需要大改,sql也有相关的执行计划可以看sql的执行顺序,查出问题较严重的慢sql还是很简单的。
优化都是迭代的,先把问题最大的解决了,其他都是小问题,慢慢调整就行