【问题标题】:MySQL storage engine for a large log table用于大型日志表的 MySQL 存储引擎
【发布时间】:2023-04-05 04:24:01
【问题描述】:

(我见过this question,但它对我想问的内容不够具体。)

我正在设置一个大型(一百 GB 左右)日志表,其平均记录大小为 100-200 字节和多个索引(索引?)。插入速率约为每秒 100-200 条记录。我将在这张表上运行分析查询,可能并非所有查询都能找到合适的索引,因此它们可能会运行很长时间并查找大量数据。

  1. 您建议使用哪种存储引擎? (基本上是 MyISAM 与 InnoDB。)
  2. 如果使用 MyISAM,长查询会阻止插入吗?
  3. 表大小是一个问题(不是一个大问题,但仍然如此)。在这方面,一个引擎是否比另一个更高效?
  4. 在性能方面,它们的比较如何?
  5. 在这种情况下我还有什么需要注意的吗?

【问题讨论】:

  • 您考虑过其他解决方案吗?我们在关系数据库中存储大型日志文件的经验不是很好。 NoSQL 解决方案甚至专用的全文搜索引擎都可能会更好。

标签: mysql performance innodb myisam


【解决方案1】:

如果你使用 INSERT 和 UPDATE 高性能使用 InnoDB 而不是 MyISAM 更好。 如果在 INSERT / UPDATE 使用 MyISAM 之前使用更多的 SELECT 语句。 InnoDB 支持 ACID(原子性、一致性、隔离性和持久性),因此 SELECT 和 JOIN 越多,速度越慢,但插入速度更快。

EYE:如果你需要交易这样的支付网关,你应该使用 InnoDB 有交易支持

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 2013-08-07
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2018-06-25
    相关资源
    最近更新 更多