MySQL - 我可以只为一个特定分区创建索引吗
MySQL - Can I create an index only to one particular partition
由于分区也将table拆分为子table,我想知道是否有任何方法可以根据分区名称将分区的table一一索引或身份证。我问这个是因为,我的 table 可以有 10 亿多行并且添加索引查询需要很长时间 hours/day,所以想检查我是否可以首先根据我认为更重要的分区开始添加索引反之亦然。
不,MySQL 没有支持在分区 table 上一次创建一个分区的索引的语法。索引将在一个 ALTER TABLE
或 CREATE INDEX
语句中添加到所有分区。
在我的公司,我们使用 pt-online-schema-change 执行架构更改,该脚本允许客户端在更改 运行ning 时继续读取和写入 table。 运行 架构更改甚至可能需要更长时间,但由于它不会阻止客户端,因此不会造成问题。
该脚本是 Percona 工具包的一部分,它是一个免费的 open-source 工具集,使用 Perl 和 Bash.
编写
由于分区也将table拆分为子table,我想知道是否有任何方法可以根据分区名称将分区的table一一索引或身份证。我问这个是因为,我的 table 可以有 10 亿多行并且添加索引查询需要很长时间 hours/day,所以想检查我是否可以首先根据我认为更重要的分区开始添加索引反之亦然。
不,MySQL 没有支持在分区 table 上一次创建一个分区的索引的语法。索引将在一个 ALTER TABLE
或 CREATE INDEX
语句中添加到所有分区。
在我的公司,我们使用 pt-online-schema-change 执行架构更改,该脚本允许客户端在更改 运行ning 时继续读取和写入 table。 运行 架构更改甚至可能需要更长时间,但由于它不会阻止客户端,因此不会造成问题。
该脚本是 Percona 工具包的一部分,它是一个免费的 open-source 工具集,使用 Perl 和 Bash.
编写