1GB内存Ubuntu服务器MySQL配置问题:存储日增1%求调优建议
MySQL配置优化建议(适配1GB内存/2核CPU低流量电商场景)
存储每日增长1%优先排查项:先确认是否为业务数据正常增长,排除业务侧原因后,优先检查MySQL日志文件大小、是否存在未清理的临时表/冗余日志表,是否有大字段存储大量无效内容。可执行以下命令定位占用空间最大的库表:
SELECT table_schema, SUM(data_length + index_length)/1024/1024 AS total_size_mb FROM information_schema.TABLES GROUP BY table_schema ORDER BY total_size_mb DESC;
内存占用控制配置(避免OOM同时保证基础性能)
innodb_buffer_pool_size = 128M:1GB内存场景下给InnoDB缓冲池分配128M即可,预留足够内存给Web服务和系统运行,避免触发内存不足进程被强制杀死key_buffer_size = 16M:仅针对MyISAM表生效,若业务全部使用InnoDB表可下调至8Msort_buffer_size = 256K、read_buffer_size = 256K:降低单连接内存占用,低流量场景下完全满足常规查询需求max_connections = 50:新站流量极低,50个连接足够支撑业务,减少不必要的连接内存开销
存储膨胀抑制配置
innodb_file_per_table = 1:开启单表单表空间,后续删除数据、优化表时可直接释放磁盘空间,避免共享表空间持续膨胀无法回收- 无主从同步需求时配置
skip_log_bin = 1:关闭二进制日志,可节省大量磁盘空间;若需开启主从则加配expire_logs_days = 7,自动清理7天前的旧日志 - 非排查阶段关闭慢查询日志:配置
slow_query_log = 0,若需保留则配置long_query_time = 2仅记录超过2秒的慢查询,同时定期清理慢查询日志文件 innodb_purge_threads = 1:加快旧undo日志清理速度,避免undo空间无意义膨胀
低流量场景性能优化配置
query_cache_type = 1、query_cache_size = 32M:电商场景读多写少,查询缓存可有效降低数据库负载,提升接口响应速度innodb_log_file_size = 64M:平衡写入性能和崩溃恢复速度,低流量场景完全够用
配置修改完成后重启MySQL生效,可执行mysqladmin variables | grep 对应配置名确认配置是否正确加载。针对频繁增删的业务表,可每周执行一次OPTIMIZE TABLE 表名回收表碎片空间。
内容的提问来源于stack exchange,提问作者papa
相关产品推荐
相关产品推荐

