【问题标题】:What is the fastest MariaDB storage engine for reads?读取速度最快的 MariaDB 存储引擎是什么?
【发布时间】:2020-02-26 15:13:12
【问题描述】:

我在 MariaDB 数据库中有一个包含 1.25 亿行的表,用于存储自动数据分析的结果。每天随机写入几千行。表上的查询一天会发生几次,可能会返回几千或几百万个结果。读取性能是最重要的,因为这发生在用户面前。

目前我使用 MyISAM,它通常运行良好,除非结果集超过几千行。我在用于查询的列上有索引。查询缓存会有所帮助,但用户很少会多次执行相同的搜索。

我确信我可以使用许多优化技术(我也很想听听这些!),但最基本的问题是对于这种大小的表和这种使用模式,最好的 MariaDB 存储是什么桌子的引擎?

【问题讨论】:

  • 你用谷歌搜索了吗?
  • 是的。有很多相关文章,主要与写入相关,但没有一个回答关于读取最快表的问题。
  • 显示读取查询、表定义和样本数据或在sqlfiddle.com上放一个样本
  • @Georg Richter - 存储引擎内存有很多限制,我们不知道他使用哪种数据类型。内存量支持文本和 Blob 字段

标签: mysql mariadb myisam


【解决方案1】:

引擎之间的索引实现不同,足以防止在没有看到实际查询和SHOW CREATE TABLE 的情况下回答您的问题。

InnoDB 是几乎所有用例的最快引擎。你有多少内存?你的桌子有多大?我正在寻找的部分内容是您的查询是 CPU 密集型还是 I/O 密集型。

根据查询的详细信息,利用 InnoDB 的“集群”PRIMARY KEY 可以提高效率。这在 MyISAM 中不直接可用。

你在用一千或一百万行做什么?总结?如果是这样,那么有一种方法可以使查询运行速度提高 10 倍:http://mysql.rjweb.org/doc.php/summarytables

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 2018-03-05
    相关资源
    最近更新 更多