我需要为我的一个表中的大多数列建立索引,因为它正被具有许多过滤器的用户用于日志搜索。
这个表每秒大约有2-3次插入。我知道索引会影响表上的插入,所以这会是个问题吗?
我使用的是最新版本的MySQL (?)使用PHP5。
谢谢。
发布于 2011-05-02 04:31:22
有几个技巧可以用来加快插入速度
索引定义
<
插入
ALTER TABLE ... DISABLE KEYS
,在大容量插入之后执行ALTER TABLE ... ENABLE KEYS
。这将延迟所有非惟一索引的更新,直到使用LOAD DATA INFILE
完成所有插入之后;这是MySQL拥有的最快的插入机制。维护
SHOW INDEX
来检查统计数据并寻找改进的机会。OPTIMIZE TABLE
。引擎的选择
使用performance.
在SO上查看以下问题的答案:
发布于 2011-05-02 02:28:00
我所能做的就是尝试一下,看看它是如何影响性能的。确保只索引那些将在搜索中使用的列,并且仅在“有意义”的情况下才在索引中包括多个列-请记住,为了使索引可用,必须在WHERE、JOIN...ON子句或order BY中引用第一列-除非满足此条件,否则不会使用索引中提到的任何后面的列。
发布于 2011-05-02 07:12:16
如果每秒只有2-3次插入,那么索引就不会有问题(除非有全文索引)。
https://stackoverflow.com/questions/5850373
复制相似问题