amn*_*amn 6 mysql database optimization
虽然我理解在一个唯一列上有一个索引非常方便 - 为了轻松有效地检查值冲突,我认为应该由程序员来指定一个唯一的字段列是否有索引,关于尺寸与速度优化.
据我所知,MySQL自动索引指定为唯一的表列.是这样吗?
有没有什么理由MySQL似乎不能有没有索引的唯一列?是的,每个值插入/更新都将是O(number_of_rows)操作而没有一个,但就像我说的那样,程序员是否应该对该决定征税?
只是好奇!
Mat*_*att 11
据我所知,MySQL自动索引指定为唯一的表列.是这样吗?
是.但它并不一定是"自动的",而是隐含的.UNIQUE是索引的类型,所以当然该列被索引.
有没有什么理由MySQL似乎不能有没有索引的唯一列?
因为MySQL对每个INSERT/ UPDATE进行全表扫描以维持唯一约束是愚蠢的.
编辑:
是的,每个值插入/更新都将是O(number_of_rows)操作而没有一个,但就像我说的那样,程序员是否应该对该决定征税?
为什么程序员想要在数据存储层之外手动强制执行基本数据完整性?我明白你要去哪里,但事实是一个索引不可能伤害任何东西(它只需要更多的空间) - 所以真的没有决定考虑.