我正在处理我没有创建的数据库。我将发出一些长时间运行的查询,涉及一个大表的三个整数列:id(主键),x和y。 (我不会写/更新记录;只是发出查询。)
SHOW CREATE TABLE显示:
`primary_key` int(11) NOT NULL auto_increment,
`x` int(11) default NULL,
`y` int(11) default NULL,
UNIQUE KEY `id` (`id`),
KEY `my_x` (`x`),
KEY `mh_y` (`y`)
就我的目的而言,我应该在id,x和y上创建索引吗?或者UNIQUE KEY和KEY行是否意味着索引已经存在?
谢谢!
〜1
答案 0 :(得分:2)
您应该在primary_key
上创建主键 - 因为UNIQUE
与PRIMARY
不同。其他两列已经编入索引 - 在这种情况下,KEY
与INDEX
相同。
如果您始终同时使用x
和y
进行搜索,那么在这两者上同时使用一个密钥可能会提高性能。
答案 1 :(得分:1)
已经存在。 使用EXPLAIN查看查询将执行的操作(性能)。