我有 4 个大表,我试图对其执行 sql 查询。查询需要很多时间来执行,所以,我想减少执行时间以获得更好的性能,我正在努力解决这个问题,所以我需要帮助
我在Linux操作系统中使用MySQL 5.7.8,12 GB RAM
*这是我的.cnf配置 *我的.cnf 文件
[mysqld]
innodb_buffer_pool_size=10G
innodb_log_buffer_size=2G
innodb_buffer_pool_instances=16
innodb_thread_concurrency=0
innodb_flush_log_at_trx_commit=0
sync_binlog=0
innodb_flush_method=O_DIRECT
skip_name_resolve
innodb_io_capacity=1000
innodb_io_capacity_max=3000
innodb_buffer_pool_dump_at_shutdown=ON
innodb_buffer_pool_load_at_startup=ON
query_cache_type = 1
query_cache_size = 256M
innodb_read_io_threads=8
innodb_write_io_threads=4
状态变量没有错,活动非常低。
尝试添加复合索引(isCancel, User)
。
如果查询仍然很慢,请删除此索引并尝试添加新的索引(isCancel, User, Quarter, Year, ClaimType, Units, Amount)
,以允许从此查询的索引中获取所有数据。