Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql分区索引_Mysql_Indexing_Partitioning - Fatal编程技术网

Mysql分区索引

Mysql分区索引,mysql,indexing,partitioning,Mysql,Indexing,Partitioning,出于数据挖掘的目的,我想从批处理数据创建一个表。我每天将有大约2500万行数据进入这个表。表中定义了几个索引,因此插入(我做批量插入)速度非常慢。如果没有索引,我可以粘贴40K行,而使用索引,它更像是3-4k行,这使得整个事情不可行。因此,我们的想法是按天对数据进行分区,禁用键,然后进行当天的插入,并重新启用索引。对一天的数据重新创建索引需要,比如说,20分钟,这很好。这就引出了我的问题。当您重新启用索引时,它是否需要重新计算所有分区上的索引,或者只计算那天的索引?很明显,对于分区所在的索引(在

出于数据挖掘的目的,我想从批处理数据创建一个表。我每天将有大约2500万行数据进入这个表。表中定义了几个索引,因此插入(我做批量插入)速度非常慢。如果没有索引,我可以粘贴40K行,而使用索引,它更像是3-4k行,这使得整个事情不可行。因此,我们的想法是按天对数据进行分区,禁用键,然后进行当天的插入,并重新启用索引。对一天的数据重新创建索引需要,比如说,20分钟,这很好。这就引出了我的问题。当您重新启用索引时,它是否需要重新计算所有分区上的索引,或者只计算那天的索引?很明显,对于分区所在的索引(在本例中是日期),它应该只针对当天。但是其他指数呢?如果需要重新计算所有分区的索引,则无法在合理的时间内完成。有人知道吗

Show create是这样的:

sts | CREATE TABLE `sts` (
`userid` int(10) unsigned DEFAULT NULL,
`urlid` int(10) unsigned DEFAULT NULL,
`geoid` mediumint(8) unsigned DEFAULT NULL,
`cid` mediumint(8) unsigned DEFAULT NULL,
`m` smallint(5) unsigned DEFAULT NULL,
`t` smallint(5) unsigned DEFAULT NULL,
`d` tinyint(3) unsigned DEFAULT NULL,
`requested` int(10) unsigned DEFAULT NULL,
`rate` tinyint(4) DEFAULT NULL,
`mode` varchar(12) DEFAULT NULL,
`session` smallint(5) unsigned DEFAULT NULL,
`sins` smallint(5) unsigned DEFAULT NULL,
`tos` mediumint(8) unsigned DEFAULT NULL,
PRIMARY KEY (userid, urlid, requested),
KEY `id_index` (`m`),
KEY `id_index2` (`t`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 

它当前未分区。

您可以禁用/启用表上的索引。这意味着将在表的所有部分禁用/启用索引

考虑以下加载新数据的场景:

  • 创建一个临时表,定义您需要的所有分区
  • 将数据加载到不带索引的临时表中
  • 在此表上创建索引
  • 将分区移动到目标表,目标表的分区与临时表相同
  • 在临时表上删除索引

  • 要以可控的方式对现有数据进行分区,可以使用相同的逻辑将数据移动到新的分区表。

    当前的表结构是什么?(
    的输出显示创建表格您的_表格