从SELECT语句创建新表时,如何向MySQL表添加索引?
我正在一个名为“production”的数据库中创建一个新表,方法是将来自另一个名为“crawler”的数据库中两个表的数据连接起来。我使用以下SQL查询创建此新表(此查询非常有效): 我还想将以下索引添加到此表中,但似乎不知道如何在同一个SQL查询中执行此操作从SELECT语句创建新表时,如何向MySQL表添加索引?,mysql,indexing,Mysql,Indexing,我正在一个名为“production”的数据库中创建一个新表,方法是将来自另一个名为“crawler”的数据库中两个表的数据连接起来。我使用以下SQL查询创建此新表(此查询非常有效): 我还想将以下索引添加到此表中,但似乎不知道如何在同一个SQL查询中执行此操作 PRIMARY KEY (`id`), KEY `company_id` (`company_id`), KEY `title` (`title`), KEY `h1_tags` (`h1_tags`) 这可以在用于创建表的同一查询中
PRIMARY KEY (`id`),
KEY `company_id` (`company_id`),
KEY `title` (`title`),
KEY `h1_tags` (`h1_tags`)
这可以在用于创建表的同一查询中完成吗?如果没有,我以后如何在查询中添加这些索引?您可以在同一条语句中执行此操作,它们只需在
选择之前执行即可:
CREATE TABLE files_and_metas_joined
(
PRIMARY KEY (`id`),
KEY `company_id` (`company_id`),
KEY `title` (`title`),
KEY `h1_tags` (`h1_tags`)
)
SELECT
crawler.files.id,
crawler.files.company_id,
crawler.file_metas.title,
crawler.file_metas.h1_tags
FROM
crawler.files,
crawler.file_metas
WHERE
crawler.files.id = crawler.file_metas.file_id
AND
crawler.files.processed = 1
AND
crawler.files.junk = 0
您可以在同一语句中执行此操作,它们只需在选择之前执行即可:
CREATE TABLE files_and_metas_joined
(
PRIMARY KEY (`id`),
KEY `company_id` (`company_id`),
KEY `title` (`title`),
KEY `h1_tags` (`h1_tags`)
)
SELECT
crawler.files.id,
crawler.files.company_id,
crawler.file_metas.title,
crawler.file_metas.h1_tags
FROM
crawler.files,
crawler.file_metas
WHERE
crawler.files.id = crawler.file_metas.file_id
AND
crawler.files.processed = 1
AND
crawler.files.junk = 0
事后:事后: