我正在使用 MySQL 数据库上的新表编写一个新功能。是否有通过索引列(我将在SELECT
查询中用于WHERE
)从一开始就获得性能命中,或者我应该等到我的表达到相当大的大小,然后再开始索引?
如果你最终需要索引,你也可以用表创建它们。这确实会减慢插入速度,但如果你需要它们,它们也可能在那里。如果你知道正确的答案,为什么要等待慢速查询?
反对立即将它们放入的一个论点是,实际的查询是否会通知索引策略。
请注意,索引会使某些操作更快(特别是select
s)。但是,它们会使其他操作变慢(特别是insert
,update
和delete
)。因此,您应该对索引进行深思熟虑。
比你需要的多一个索引太多了。少一个太少了。
我试着寻找一个案例,有太多的索引是一个问题,不能真正找到任何东西
你知道你有太多的,如果你的插入太慢,和用于阅读的索引没有加快速度足以弥补它。
当您插入,更新,删除表时,索引也需要更新。
See thisArticle about indexing是的,插入和更新可能会因为索引而变慢。然而,在我的实践中,这并不是一个常见的问题。你只想添加你知道你需要的索引。在解决新问题时,等待添加其他索引。有一件事要考虑很多次:“如果”索引被遗忘,不需要,实际上会导致性能问题,如果找到问题索引,开发人员将花费额外的时间来确定其他索引的一部分。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(83条)