如何优化 1Gb 大小 250k+ 行的 Mysql 表以获得更好的性能

Posted

技术标签:

【中文标题】如何优化 1Gb 大小 250k+ 行的 Mysql 表以获得更好的性能【英文标题】:How to Optimize a Mysql table of 1Gb size 250k+ rows for better performance 【发布时间】:2012-03-15 15:47:33 【问题描述】:

现在我的表在 MYISAM 中,因为我使用的是全文搜索。

我在此表中有一个列,其文本更像博客文章。该列贡献最大。到这张桌子的大小。此列甚至不用于全文搜索。

每 6 小时在此表中插入大约 20-50 行。所以,大多数时候它只是从中读取数据。

我应该切换到 Innodb 吗?或者在 Innodb 中创建另一个表,其中只有 2 列作为大量列和 rel。 ID。或者我应该将此列写入 txt 文件并在需要时访问这些文件。

我完全糊涂了,大多数文章、问题对我没有多大帮助。

关于我应该如何提高其性能的任何建议?

【问题讨论】:

您何时遇到性能问题?在做什么的时候? 你运行的是什么版本的 mysql,因为他们最近添加了对 innodb 的全文支持。 正如@BenGriffiths 所说,InnoDB 最近添加了 FT 索引,它是更先进的引擎,1GB 的数据和数百兆字节的索引应该很容易适应它的缓存。 【参考方案1】:

您没有提供足够的信息来确定任何成本与收益比率,或者即使当前的表现可能是合理的。您可以无限期优化任何系统,但您需要牢记现在是否足够好?

最可靠的答案是实施所有重组并为它们计时。由于似乎只有一张表有问题,因此工程设计工作不应超过几个小时,再加上导入运行所需的时间。

【讨论】:

以上是关于如何优化 1Gb 大小 250k+ 行的 Mysql 表以获得更好的性能的主要内容,如果未能解决你的问题,请参考以下文章

ES优化 内存设置

MySQL优化性能my.cnf详解

对约 225 万行的单表进行选择查询的优化技术?

Elasticsearch7.8.0版本优化——内存设置

JVM优化

mysq'l系列之10.mysql优化&权限控制