innodb_buffer_pool_size)需占用物理内存的70%-80%,用于缓存数据和索引,减少磁盘I/O。noatime(不记录文件访问时间,减少磁盘写入)、async(异步写入,提升IO性能)。vm.swappiness:设置为0-10(减少内存交换,避免磁盘IO瓶颈);vm.dirty_background_ratio:5-10(后台脏页刷新阈值);vm.dirty_ratio:设置为dirty_background_ratio的两倍(强制刷新脏页的上限);net.core.somaxconn(连接队列长度)、调整net.ipv4.tcp_tw_reuse(复用TIME_WAIT连接),减少连接建立开销。innodb_buffer_pool_size是MySQL性能的关键参数,建议设置为物理内存的70%-80%(如16GB内存可设为12GB),用于缓存数据和索引,显著减少磁盘IO。max_connections根据并发用户数调整(如500-1000),避免连接数耗尽;配合thread_cache_size(线程缓存,建议50-100)减少线程创建开销。innodb_log_file_size(建议256MB-1GB)和innodb_log_files_in_group(建议2-4个)平衡性能与数据安全性(更大的日志文件减少刷新频率,提升写入性能)。innodb_flush_log_at_trx_commit:主库设为1(保证数据一致性,每次事务提交都刷新日志到磁盘),从库设为2(每秒刷新一次,提升复制性能)。WHERE、JOIN、ORDER BY字段创建索引(如user_id、order_date);优先使用复合索引(覆盖多个查询字段,遵循最左前缀原则,如(user_id, order_status))。SHOW INDEX FROM table_name查看),减少写操作的开销(索引越多,INSERT/UPDATE/DELETE越慢)。WHERE YEAR(create_time) = 2025),这会导致索引失效;使用EXPLAIN分析查询计划,确保查询使用了索引(type列显示ref或range为佳)。SELECT column1, column2代替SELECT *,减少数据传输量;确保查询条件能命中索引(如WHERE id = 1比WHERE name LIKE '%张三%'高效)。JOIN代替子查询(子查询会导致临时表创建,影响性能),确保JOIN字段有索引;避免SELECT *在JOIN中,只选择必要的字段。LIMIT offset, size的大偏移量分页(如LIMIT 10000, 10),改用WHERE id > last_id LIMIT size(记录上一页最后一条记录的ID,减少扫描行数)。INSERT INTO ... VALUES (...), (...), ...代替多次单条插入,减少客户端与服务器的通信次数(提升写入性能)。TINYINT代替INT、VARCHAR(50)代替TEXT),减少磁盘占用和内存消耗;避免使用TEXT、BLOB等大字段(如需存储,可分离到单独表中)。category_name存储在订单表中,而非每次查询都关联category表),减少表连接操作(连接越多,性能越差)。OPTIMIZE TABLE整理表碎片(针对频繁更新的表,如日志表、订单表),恢复索引效率;定期执行ANALYZE TABLE更新统计信息(帮助优化器选择更优的执行计划)。slow_query_log = 1,long_query_time = 2),使用pt-query-digest、mysqldumpslow工具分析慢查询,定位性能瓶颈(如未使用索引、全表扫描)。mysqldump、xtrabackup等工具定期备份数据库(每日全备+增量备份),确保数据安全;开启压缩功能(如--single-transaction --quick --master-data=2 | gzip > backup.sql.gz),减小备份文件大小。以上优化策略需根据实际业务负载(如并发量、数据量)和环境(如服务器配置)进行调整,持续监控和迭代优化是保持数据库高性能的关键。