向表中添加主键(自动增量)以获得更好的性能是否有用?此ID不会在查询中使用,但无论如何它可能对性能有用。
我的一个表没有主键/唯一/索引,工作速度很慢。 那么添加这样的ID是否更好?或者我应该为一个主键创建3列(因为它们必须在一起才能是唯一的)?
答案 0 :(得分:1)
最好有PK
,aditional你可以在其他列上添加UNIQUE
索引来支持它们
答案 1 :(得分:1)
我喜欢总是有一个ID整数自动递增,因为你永远不知道什么时候需要从其他人引用这个表或者根据属性找到一个特定的行(例如findById().ID整数自动增量列是适合它lol)
话虽如此,查询速度慢的问题取决于每个查询。看看你的WHERE子句。你搜索那些独特的3列吗?然后在这3列之上添加一个索引(并使其唯一,因为它们是唯一的一起)。如果您的查询仅按一列搜索,请在其上添加索引。
答案 2 :(得分:0)
索引仅提高搜索要编制索引的列的查询的性能。未使用的主键对性能没有影响。
如果您的查询运行缓慢,请确保您在搜索的列上有索引(列不必是唯一的索引)。并使用EXPLAIN
来查看MySQL如何优化查询,以及它是否正在使用这些索引。
如果您遇到特定查询的问题,请在发布数据库架构和相关查询的位置开始一个新问题,我们也许可以为您提供帮助。