如果我使用
CREATE INDEX status_index ON eligible_users (status)
或
CREATE INDEX status ON eligible_users (status)
同样的事情没有区别?
另外,如果我创建了很多索引,它实际上有助于查询或减慢速度吗?
答案 0 :(得分:3)
你写的两个语句都做了同样的事情,唯一的区别就是索引的名称。
至于实用性,它取决于数据库的设置和使用。索引对于加速查询很有用,但它们必须在每个INSERT / UPDATE上进行维护,因此它取决于。关于这个广泛的主题,网上有很多可用的资源。
索引可以创建或中断查询。通过添加正确的索引,某些查询的执行时间可以从几分钟到几分之一秒。如果你需要改进查询,你可以随时添加EXPLAIN
,看看MySQL的执行计划是什么:它将显示查询使用的索引(如果有的话)并帮助你解决一些瓶颈问题。
如上所述,索引很有用但不是免费的。它必须保持最新,因此每次在索引字段中插入或修改数据时,索引也必须更新。 通常,在您有大量读取和(相对)少量写入的情况下,索引会有很多帮助。但是,不必要的索引会降低性能而不是改进性能。
答案 1 :(得分:0)