mysql - 这种情况需要使用 InnoDB 还是 MyISAM?

标签 mysql innodb myisam

我正在对一个表(很少有内部联接)进行搜索,最多需要 5 秒才能运行(750 万行)。这是一个 MyISAM 表,我没有对它使用全文索引,因为我发现在这种情况下使用 MATCH AGAINST 和普通的“like”语句在速度上没有差异。

我现在正因为锁定表和查询运行几分钟才完成而“受苦”。

尝试将引擎切换到 InnoDB 对我有什么好处吗?还是仅在我需要插入或更新行时才有帮助...而不仅仅是选择它们?这整个锁表的东西都在忙着磨我的球......

最佳答案

InnoDB 支持行级锁定而不是表级锁定...所以这应该可以缓解您的问题(尽管我不确定它是否会完全消除它)。

最好的选择是使用专用的搜索系统(如 Sphinx、Lucene 或 Solr)

关于mysql - 这种情况需要使用 InnoDB 还是 MyISAM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3356285/

相关文章:

mysql - 如何将table1中的table2更新为table2中的相应条目?

mysql - 如何在 MySQL 准备语句中使用 COLLATE

MySQL 回收磁盘空间,使用 OPTIMIZE 表

mysql - 为什么MySQL中有多个存储马达

php - 使用 PHP Mysql 如何从 sql 查询中的多个 OR 条件中获取满足哪个条件?

php - 显示投票最多的帖子

MySQL随机与特定选项

mysql - 我可以在一个数据库中使用 InnoDB 和 MyISAM 表吗?

mysql - 如何改进 insert into select 等待表行为

mysql - InnoDB:破坏和修复索引