Mysql配置优化,如何让我的mysql跑得更快?

问题描述 投票:0回答:1

我有 mysql 版本 8.0.x+ 我的数据库服务器 RAM 和 CPU:

这是我当前的配置:

我尝试运行这样的选择查询:

从 db.table1 中选择 * 其中 ID = 79998,年份 = 2009;

我花了大约30秒,db.table1包含大约50m条记录。

如何加速mysql数据库?

我的创建表:

CREATE TABLE `table1` (
       `ID` bigint PRIMARY KEY auto_increment,
       `Company_ID` bigint DEFAULT NULL,
       `year` bigint DEFAULT NULL,
       `Fiscal_period_ID` bigint DEFAULT NULL,
       `Filing_status_ID` double DEFAULT NULL,
       `Accounting_standard_ID` double DEFAULT NULL,
       `Fundamentals_type_ID` bigint DEFAULT NULL,
       `Is_consolidated` double DEFAULT NULL,
       `Latest_period_end` text,
       `Entry_date` text,
       `Update_date` text,
       `Announcement_date` text,
       `Available_date` text,
       `Revision` bigint DEFAULT NULL,
       `Flag` bigint DEFAULT NULL,
       `Update_lock` bigint DEFAULT NULL,
       `U3_ID_FS` double DEFAULT NULL,
       `EQY_FUND_CRNCY` int DEFAULT NULL,
       `ID_BB_COMPANY` bigint DEFAULT NULL,
       `CLEANUP_FLAG` double DEFAULT NULL,
       `ID_BB_UNIQUE` text
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
mysql mysql-workbench
1个回答
0
投票

(部分答案)

主要问题是查询没有使用任何索引。

在表中添加以下索引

alter table table1 
   add index id_year(ID,Year) ,
   add idex year_id(Year,ID);

运行解释计划

explain SELECT * FROM db.table1 where ID = 79998 and year = 2009;

并查看上面的索引使用了哪个索引,并删除多余的索引。

© www.soinside.com 2019 - 2024. All rights reserved.