我有一个包含多个字段的表,我正在尝试对其进行索引:
user_id = Int that divides the data between user accounts.
item_number = Non-unique Int that a user sets when creating new items.
我有两个索引:
idx_user_id: Fields = user_id, Type = BTREE, Unique = NO
idx_user_id_item_number: Fields = user_id AND item_number, Type =
BTREE, Unique = YES
我想知道idx_user_id是否是不必要的,因为我们还使用 user_id启动了我们的idx_user_id_item_number并且查询将使用它并获得相同的结果。我唯一担心的是,因为idx_user_id_item_number索引是唯一的,所以可能需要同时保留两者。
您的索引 on(user_id)
与您的索引 on 是多余的(user_id, item_number)
。您不需要第一个索引。您应该删除它,因为它会占用存储空间并减慢更新和插入操作的速度。
出于索引的目的,MySQL 使用多列索引中的前导一列或多列,就好像它们是独立索引一样。
但是请注意,如果您的索引(user_id)
是唯一索引而另一个不是,则您需要两个索引。为什么?在这种情况下,您将使用第一个索引来强制执行唯一性约束。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句