gpt4 book ai didi

mysql - mySQL 的速度和调整(10 亿行)

转载 作者:行者123 更新时间:2023-11-29 01:07:40 34 4
gpt4 key购买 nike

我的公司有一个分析师团队使用的 mySQL 服务器(通常一次有 3-4 个)。最近,对于包含多达 10 亿行(10^9 条记录)的表的数据库,查询速度变慢了,其中一些查询甚至需要几天时间。

  • 服务器主要特点:Linux 操作系统 - 64 GB 内存 - 3 TB 硬盘。

我们对微调一无所知,因此欢迎任何工具/经验法则来找出导致问题的原因或至少缩小范围。

转到 Workbench studio>Table inspector,我发现了我们最常使用的数据库的这些关键值:

  • 数据库大小:~500 GB
  • 最大表大小:~80 GB
  • 索引长度(对于最大的表):~230 GB。该索引依赖于 6 个字段。
  • 几乎没有 MyISAM 表,都是 InnoDB

理想情况下,我想以最简单的方式微调服务器(更好)、数据库(更差)或两者(将来),以加快速度。

我的问题:

  1. 这些值(500、80、230 GB)是否正常且可管理?中型服务器?
  2. 索引大小为 -230Gb- 比表本身大很多是正常的吗?
  3. 可以调整哪些参数/策略来解决这个问题?我正在考虑内存日志或购买服务器 RAM,但很乐意调查任何明智的答案。

非常感谢。

最佳答案

如果您正在管理这种规模的 MySQL 实例,那么值得花时间阅读 High Performance MySQL这是关于 MySQL 调优的最好的书。我强烈建议您获取并阅读这本书。

您的 InnoDB 缓冲池可能仍处于默认大小,没有利用 Linux 系统上的 RAM。如果您没有配置 MySQL 来使用它,那么您有多少 RAM 都没有关系!

还有其他重要的调整参数。 MySQL 5.7 Performance Tuning Immediately After Installation是对最重要的调整选项的精彩介绍。

索引可以比表本身大。将近 4 比 1 的比例很不寻常,但不一定是坏事。这取决于您需要哪些索引,除非您考虑需要针对此数据运行的查询,否则无法知道这一点。

我做了演示 How to Design Indexes, Really几年前(它与当前版本的 MySQL 一样相关)。这是视频:https://www.youtube.com/watch?v=ELR7-RdU9XU

关于mysql - mySQL 的速度和调整(10 亿行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45172102/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com