linux - Linux 上的 MariaDB 10.2.19 - 性能非常慢
问题描述
主要问题 - 我有一个查询连接两个已编入索引的表。当我运行查询时,即使五个小时后,它仍在运行。我从来没有得到结果。这就像一个永无止境的查询。这是我们刚刚安装的一个新数据库,也是我们尝试的第一个查询。性能很慢.. 在这一点上,我试图弄清楚问题是服务器/CPU/网络/IO/RAM 还是数据库本身(需要调整配置文件)或者是查询。当我解释计划时,我确实看到正在使用索引。根据下面显示的数字,我的数据量是否太大而无法处理 MariaDB?我从哪里开始排除故障?任何帮助是极大的赞赏。
眼镜 -
• 我们有Linux rhel7.5 上的MariaDB 10.2.19 • 我们的数据库主要用于存储月度数据,然后我们对其进行报告并进行分析工作。• 我们有大约 70 多张桌子。
• 3-4 个用户 • 我正在运行一个连接两个表的查询。下表列出了表格的大小。查询并不复杂——对列和两个表进行简单的内连接,我正在查找 201911 年/月的数据。这两个表由两个列连接,并且两个列都在两个表上建立索引。我已将查询修改为许多变体,但没有一个查询返回任何行……即使运行了 5 个小时,它仍然没有完成,我不得不终止查询。
(Innodb) 数据库大小 1919.69G
table1 的大小 - daily_2019 总行
数 1,034,987,628 我正在分析的数据(使用 where 子句)73,895,929 总表大小 230.62GB
table2 的大小 - 邮政编码
Total Rows 68,429,146
Data I’m analyzing (using where clause) 3,998,975
Total table size 28.70GB
解释计划 - 表daily_2019 和邮政编码每个在三个不同字段上都有 3 个索引。Col1、col2 和 col3 都有 daily_2019 和邮政编码的索引。解释计划中使用了两个键。每张桌子一个。
我们已将 innodb_buffer_pool_size 设置为 128G
解释计划
+------+-------------+-------+------+-------------------------------------+-------------+---------+-----------------------+---------+------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
+------+-------------+-------+------+-------------------------------------+-------------+---------+-----------------------+---------+------------------------------------+
| 1 | SIMPLE | T2 | ref | ZIP_I2,ZIP_I1,ZIP_I3 | ZIP_I1 | 5 | const | 7994358 | Using where
| 1 | SIMPLE | T1 | ref | ADHOC_I2,ADHOC_I1,ADHOC_I3 | ADHOC_I3 | 13 | T2.ID | 12 | Using index condition; Using where
+------+-------------+-------+------+-------------------------------------+-------------+---------+-----------------------+---------+------------------------------------+
解决方案
推荐阅读
- reactjs - 如何使用 BrowserRouter 和 Switch 的路由数组映射而不同时加载它们?
- android - 我在 M1 mac 上运行 android 模拟器时遇到问题
- algolia - 如何使用 Instantsearch 生成 SEO URL
- android - Jetpack compose 中的 ClickableText 样式
- python - 当使用像 Uvicorn 这样的 ASGI 服务器时,Flask 记录器不起作用
- .net - 如何正确使用 DataAnnotations 在 .NET 5.0 中使用 Identity 注册用户?
- web-services - 我如何从 Prestashop WebService 运行课程
- r - 仅当环境中存在变量时,如何在 R 中运行块?否则跳到下一个块
- sql - 如何从另一个表中的不同值创建表?
- javascript - 如何使用粘性 ListHeaderComponent 制作 SectionList?