Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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
您正在运行1.3TB的联机数据,并且您声明只需要读取最近的3-6个分区。在添加本机分区之前,来自MySQL,我认为这对于视图和单独的表来说是一个很好的例子(在需要滚动时自动更新视图)。它还可以让您轻松地将一些较旧的表移动到脱机存储。该表有外键吗?此外,您是_Mysql_Database_Indexing_Alter Table - Fatal编程技术网

您正在运行1.3TB的联机数据,并且您声明只需要读取最近的3-6个分区。在添加本机分区之前,来自MySQL,我认为这对于视图和单独的表来说是一个很好的例子(在需要滚动时自动更新视图)。它还可以让您轻松地将一些较旧的表移动到脱机存储。该表有外键吗?此外,您是

您正在运行1.3TB的联机数据,并且您声明只需要读取最近的3-6个分区。在添加本机分区之前,来自MySQL,我认为这对于视图和单独的表来说是一个很好的例子(在需要滚动时自动更新视图)。它还可以让您轻松地将一些较旧的表移动到脱机存储。该表有外键吗?此外,您是,mysql,database,indexing,alter-table,Mysql,Database,Indexing,Alter Table,您正在运行1.3TB的联机数据,并且您声明只需要读取最近的3-6个分区。在添加本机分区之前,来自MySQL,我认为这对于视图和单独的表来说是一个很好的例子(在需要滚动时自动更新视图)。它还可以让您轻松地将一些较旧的表移动到脱机存储。该表有外键吗?此外,您是否需要能够始终读取整个数据(和/或您是否可以在维护期间调整应用程序以访问不同的表),因为您只指定您必须能够始终写入数据?另外,该特定表本身的I/O是否会有问题,或者服务器上的I/O是否会有问题(因为它可能会减慢服务器的其余部分)好问题!我更新了


您正在运行1.3TB的联机数据,并且您声明只需要读取最近的3-6个分区。在添加本机分区之前,来自MySQL,我认为这对于视图和单独的表来说是一个很好的例子(在需要滚动时自动更新视图)。它还可以让您轻松地将一些较旧的表移动到脱机存储。

该表有外键吗?此外,您是否需要能够始终读取整个数据(和/或您是否可以在维护期间调整应用程序以访问不同的表),因为您只指定您必须能够始终写入数据?另外,该特定表本身的I/O是否会有问题,或者服务器上的I/O是否会有问题(因为它可能会减慢服务器的其余部分)好问题!我更新了事实清单。此外,I/O属于整个服务器。当磁盘利用率达到100%时,奇怪的事情开始发生。请提供
SHOW CREATE TABLE
;还有更多的信息我需要看。有多少个分区?典型的查询是什么?您正在执行的
更改是什么?同时,关于分区的更多信息:是否有必要将所有这些数据保存在一个表中?添加了额外的信息。
ALTER
是专门将多个索引组合成较少的复合索引,因为它们总是在一起。数据必须保留在此表中,是的。我当前的解决方案是使用pt online schema change,关闭很多功能(块大小限制为0,没有删除,没有检查计划,没有交换表,没有触发器(我将它们全部禁用)),然后在交换后的两个24小时转储中进行差异,以在更改后插入差异。不过,我很喜欢这里的第五步!我不知道这是否更容易适应;我们不确定的是,写入表的系统有一个24小时的保留队列。但是我不能停止写作,除非你是说拷贝?我想试试这个;与percona工具类似,祝你好运。啊,我没有意识到在pt osc中可以关闭触发器。24小时--数据在24小时后被删除?但是你有几个月的数据?在pt osc中也会发生“停止写入”。诀窍是把它写得很短,以免给作者带来不便。我不知道你的情况,所以我不能在那里详细说明。希望作者已经能够通过重试或其他方式处理短暂的网络中断。pt在线模式更改工具最终是一个Perl脚本。我只是禁用了触发器(以及删除触发器的一些额外内容)。24小时是通知应用程序不要写入条目的超时时间,如果它收到“继续”命令,或者24小时已满,则是插入到
。我不知道pt osc中的写入停止,谢谢。有趣的解决方案!不幸的是,这种“混乱”破坏了我们的内部报告系统,因为磁盘利用率一直保持在100%。另外,我注意到在其他地方发生了奇怪的事情,但这可能是由于其他进程具有奇怪的优先级造成的。对于这种情况,磁盘利用率100%是正确的输出。理想情况下,您应该
ionice
ALTER TABLE
进程改为使用idle类,并且不处理正常的工作负载,但是如果您的系统很忙,则ALTER可能需要很长时间。如果您想设置非常具体的磁盘带宽限制(例如10MB/sec或某些IOPS),可以使用blkio cgroup系统和cgclassify或类似工具将进程移动到具有目标限制的cgroup中。我们计划对cgroup进行未来更改(目前根本不使用),对我来说“仅仅添加这个”是相当困难的,但我确实认为这是一个好主意!
CREATE TABLE `my_wonky_table` (
  `id` bigint(20) unsigned NOT NULL,
  `login` varchar(127) DEFAULT NULL,
  `timestamp` int(10) unsigned NOT NULL,
  `ip` varchar(32) CHARACTER SET ascii DEFAULT NULL,
  `val_1` int(10) unsigned DEFAULT NULL,
  `val_2` varchar(127) DEFAULT NULL,
  `val_3` varchar(255) DEFAULT NULL,
  `val_4` varchar(127) DEFAULT NULL,
  `val_5` int(10) unsigned DEFAULT NULL,
  KEY `my_wonky_table_id_idx` (`id`),
  KEY `my_wonky_table_timestamp_idx` (`timestamp`),
  KEY `my_wonky_table_val_1_idx` (`val_1`,`id`),
  KEY `my_wonky_table_val_2_idx` (`val_2`,`id`),
  KEY `my_wonky_table_val_4_idx` (`val_4`,`id`),
  KEY `my_wonky_table_val_5_idx` (`val_5`,`id`),
  KEY `my_wonky_table_ip_idx` (`ip`,`id`),
  KEY `my_wonky_table_login_idx` (`login`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (`id`)
(PARTITION pdefault VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */