我正在使用laravel& mysql,我的数据库表有超过1M的记录,并继续快速增长。我始终需要按created_at
或updated_at
列中的日期范围进行过滤或计数。我想知道我应该为created_at
和updated_at
创建索引。索引是否使查询更快?如果我创建两个索引,插入的速度会慢多少?
全部谢谢
答案 0 :(得分:1)
索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。
表越大,成本越高。如果表中有相关列的索引,MySQL可以快速确定要在数据文件中间寻找的位置,而无需查看所有数据。这比按顺序读取每一行要快得多。
索引会降低插入/删除性能,因为索引必须更新。如果更新,取决于您是否更新索引列。如果没有,表现不应受到影响。
答案 1 :(得分:1)
如果您的业务需求需要您按 modified_at
或 created_at
查询或排序记录,您应该添加索引,这是常见的情况。
否则如果只是个人检查需要,则无需为其添加索引。