我有一个优化问题。我还没有真正进入 MySQL 索引。我阅读了一些文章和问题,但我还没有找到我要找的东西。
我在有近 100 万行的表上有一个带有 WHERE 条件的 UPDATE 语句。
我想加快这个 UPDATE 操作。我认为大部分时间都花在寻找 WHERE 中指定的记录上。
我的查询看起来像这样,具有不同的 URL:
UPDATE table SET updated = 1, updated_date = now() , [some more fields updated]
WHERE url = 'someurl.com?id=123532js23';
URL 是唯一的。目前有一个定义为 PRIMARY KEY 的 AUTO INREMENT id 字段。我不需要任何 <、> 或 BETWEEN 操作 - 所以也许我可以使用一些散列?
我应该使用什么引擎和索引以获得最佳性能?
我的一位朋友建议在 url 字段上使用 InnoDB + UNIQUE。还有什么我可以做的吗?这个 UPDATE 运行了很多次——每天大约 1 000 000 次,大多数执行导致更新——大约 95%。
谢谢你的帮助!