我应该在Laravel中为timestamps列创建索引

时间:2018-01-26 04:49:54

标签: php mysql laravel indexing

我正在使用laravel& mysql,我的数据库表有超过1M的记录,并继续快速增长。我始终需要按created_atupdated_at列中的日期范围进行过滤或计数。我想知道我应该为created_atupdated_at创建索引。索引是否使查询更快?如果我创建两个索引,插入的速度会慢多少?

全部谢谢

2 个答案:

答案 0 :(得分:1)

索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。

表越大,成本越高。如果表中有相关​​列的索引,MySQL可以快速确定要在数据文件中间寻找的位置,而无需查看所有数据。这比按顺序读取每一行要快得多。

索引会降低插入/删除性能,因为索引必须更新。如果更新,取决于您是否更新索引列。如果没有,表现不应受到影响。

答案 1 :(得分:1)

如果您的业务需求需要您按 modified_atcreated_at 查询或排序记录,您应该添加索引,这是常见的情况。

否则如果只是个人检查需要,则无需为其添加索引。