MYSQL:我应该在用作日志的大型表上创建索引吗?

eri*_*ric 7 mysql indexing

我有一个基本的分析mysql数据库表,它跟踪用户访问时访问的所有ipaddresses和url以及他们访问的时间.有大量插入(每天数百万).

几天后,在桌面上运行查询以尝试查找在特定日期访问的用户数量需要很长时间.

我应该在表格中添加索引吗?它会在每次插入后重新创建索引吗,值得吗?

或者有更好的方法来加快我的分析查询速度吗?

这可能是一种常见的情况(每个人都有日志).维护此表的最佳方法是什么?

ajr*_*eal 1

MYSQL 5.0引入了Archive Storage Engine
相信可以回答你的大部分问题

我应该在表中添加索引吗
- 是的,如果您想执行搜索

每次插入后是否会重新创建索引
- 由 mysql 内部处理

值得
- 取决于,添加索引会稍微减慢数据库写入操作(取决于索引数量和记录长度)

或者是否有更好的方法来加速我的分析查询
- 如果您只想执行简单的计算,您可以考虑每天拆分数据(每个表保存每天的日志记录)。或者您可以准备某种查询缓存预热脚本