我的 MySQL 数据库的简化版本如下所示:
Table books (ENGINE=MyISAM)
id <- KEY
publisher <- LONGTEXT
publisher_id <- INT <- This is a new field that is currently null for all records
Table publishers (ENGINE=MyISAM)
id <- KEY
name <- LONGTEXT
目前,books.publisher 持有不断重复的值,但 publishers.name 持有唯一的值。我想摆脱 books.publisher 而是填充 books.publisher_id 字段。
描述我想要做的简单的 SQL 代码如下:
UPDATE books
JOIN publishers ON books.publisher = publishers.name
SET books.publisher_id = publishers.id;
问题是我有大量记录,即使它有效,它也需要永远。
有没有比提前使用这样的东西更快的解决方案?:
CREATE INDEX publisher ON books (publisher(20));