Configuring caching in MySQL

Configuring caching in MySQL can significantly enhance database performance by reducing query execution times. Below are the steps to configure caching in MySQL:


1. Enable Query Cache

The query cache is used to store the results of SELECT queries. If the same query is executed again, MySQL can return the cached result without re-executing the query.

Steps:
  1. Check if the query cache is enabled:

    SHOW VARIABLES LIKE 'query_cache%';

  2. Enable and configure query cache in the MySQL configuration file (my.cnf or my.ini):

    [mysqld] query_cache_type = 1 # 1 = ON, 2 = DEMAND (only cache queries with SQL_CACHE) query_cache_size = 128M # Set the size of the query cache query_cache_limit = 2M # Maximum size of individual query results to cache

  3. Restart the MySQL service to apply changes:

    sudo service mysql restart

  4. Use SQL_CACHE or SQL_NO_CACHE in queries (if query_cache_type = 2):

    SELECT SQL_CACHE * FROM my_table WHERE id = 1;


2. Use InnoDB Buffer Pool

For the InnoDB storage engine, the InnoDB Buffer Pool is the primary caching mechanism for data and indexes.

Steps:
  1. Configure the buffer pool size in my.cnf:

    [mysqld] innodb_buffer_pool_size = 4G # Set it to about 70-80% of total available memory innodb_buffer_pool_instances = 4 # Number of buffer pool instances (for large buffer sizes)

  2. Restart MySQL:

    sudo service mysql restart

  3. Monitor usage:

    SHOW ENGINE INNODB STATUS\G;


3. Configure Table Cache

The table cache determines how many table handles MySQL can keep open at a time.

Steps:
  1. Configure table_open_cache in my.cnf:

    [mysqld] table_open_cache = 2000 # Adjust based on workload

  2. Monitor open tables:

    SHOW STATUS LIKE 'Open_tables';


4. Use Performance Schema and Query Optimization

MySQL includes a Performance Schema to monitor and optimize queries, which helps identify which queries to cache or optimize.

Steps:
  1. Enable Performance Schema:

    [mysqld] performance_schema = ON

  2. Analyze slow queries:

    SHOW FULL PROCESSLIST;

  3. Enable and configure the slow query log:

    [mysqld] slow_query_log = 1 slow_query_log_file = /var/log/mysql-slow.log long_query_time = 1

  4. Restart MySQL and review slow queries:

    sudo service mysql restart tail -f /var/log/mysql-slow.log


5. Use Proxy Cache (Optional)

Consider using a proxy tool like ProxySQL for advanced query caching mechanisms.


6. Monitor Cache Usage

Use these commands to monitor caching performance:

  • Query cache: SHOW STATUS LIKE 'Qcache%';

  • InnoDB buffer pool: SHOW STATUS LIKE 'Innodb_buffer_pool%';

相关推荐
风哥2号15 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
YangYang9YangYan16 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
西安栈上月明软件科技17 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
anxiao_m17 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传
风哥2号19 小时前
数据库教程FGMT43‑MySQL性能分析与优化调整
数据库·mysql
随身数智备忘录20 小时前
财务数据分析如何与业务场景结合?财务数据分析如何从数出有据到数出有用?
数据库
这个DBA有点耶21 小时前
数据库教程:从零基础到实战的完整学习路径(2026版)
数据库·程序员·代码规范
forestsea21 小时前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
默 语1 天前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重
probex_1 天前
从 ByConity 到 VictoriaMetrics:一次指标数据迁移引发的四种存储对比
数据库