【发布时间】:2012-06-13 08:55:22
【问题描述】:
我正在使用非常大的数据库,有些表有超过 30.000.000 个条目,现在我使用的是 mysql,但是对于某些搜索查询,我必须等待超过 1-2 分钟。有什么提高速度的方法吗?另外,没有其他数据库会更快吗?另外,在rails中使用什么?现在我使用简单的%like%,还有其他方法可以通过某个字段进行搜索吗?
【问题讨论】:
-
对于任何数据库,您应该首先考虑提高性能的地方之一是基于您的查询类型的索引。您正在查询哪些列以及表上有哪些索引?您是否正在执行并发查询?如果是这样,您可以尝试使用 InnoDB 而不是 MyISAM 表。一般来说,如果配置得当,MySQL 可以处理数十亿行。
-
%like%在大多数(全部?)数据库中导致顺序表扫描,但有些可以使用like%的索引。如果您需要进行大量这样的搜索,那么使用 FTS 可能会更好。
标签: mysql ruby-on-rails database optimization