hak*_*iko 2 mysql ubuntu performance ram caching
嗨,我想更改我的/etc/my.cnf文件(mysql的配置文件).
以下值应该在我的查询中获得更好的性能.
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 16M
Run Code Online (Sandbox Code Playgroud)
cache_size/RAM有最佳比例吗?我的ubuntu机器上有8GB的内存.
如果有明确定义的最佳值,则不需要配置选项.默认情况下,MySQL会使用该最佳值.该查询缓存也仅适用于非常特殊的情况(你读从表中有很多比你更写它),因为缓存在每个表的基础每次你写什么表时间清空有用.它也只有在您使用相同的参数一遍又一遍地声明完全相同的查询时才有效.
您的最佳价值需要衡量,并且很大程度上取决于您的使用案例.如果你有很多InnoDB表,你将从InnoDB缓冲池中获得更多的使用:innodb_buffer_pool_size.将此变量设置得尽可能高(并且在仅限MySQL的InnoDB机器上,这可能意味着高达80%的可用RAM).
我们在8GB RAM服务器上托管了数百个小型网站,该服务器在同一机器上运行数据库和Web服务器,混合使用MyISAM和InnoDB表.这是我们的比较配置:
innodb_file_per_table=1
open_files_limit=50000
max_allowed_packet=268435456
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_method=O_DIRECT
innodb_io_capacity=1000
innodb_old_blocks_time=1000
innodb_open_files=5000
key_buffer_size=16M
read_buffer_size=256K
read_rnd_buffer_size=256K
query_cache_size=256M
query_cache_limit=5M
join_buffer_size=4M
sort_buffer_size=4M
max_heap_table_size=64M
tmp_table_size=64M
table_open_cache=4500
table_definition_cache=4000
thread_cache_size=50
Run Code Online (Sandbox Code Playgroud)
如果您的机器有大量写入,请完全关闭查询缓存 (type=0, size=0)。这是因为对表的每次写入都会导致该表的 QC 中的所有条目都被删除。
因此,QC 太大可能会“慢”。我建议 query_cache_size 不超过 50M。
我希望这能解释为什么我没有解决您关于 RAM 百分比的标题问题。
| 归档时间: |
|
| 查看次数: |
8900 次 |
| 最近记录: |