Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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_Innodb_Mysql 5.7 - Fatal编程技术网

如果表已经在mysql中分片,那么仍然需要分区吗?

如果表已经在mysql中分片,那么仍然需要分区吗?,mysql,innodb,mysql-5.7,Mysql,Innodb,Mysql 5.7,背景:MySQL 5.7,InnoDB引擎 我们有一个巨大的事务日志表,每天新增600万行,我们希望将这个巨大的表分成多个mysql实例和表,因此我们有表_001、表_002等。用户经常查询他们最近的行,这意味着最近的行是热的,而旧的行是冷的 我想知道在这种情况下,在每个分片表表\u 001、表\u 002等中是否仍然需要mysql分区。我的意见是否定的。如果我们已经将数据分片到许多子表中,为什么我们需要使用分区的另一种子表?分区实际上在内部是独立的表,对吗?拆分表有4种方法: 切分-多个服务器

背景:MySQL 5.7,InnoDB引擎

我们有一个巨大的事务日志表,每天新增600万行,我们希望将这个巨大的表分成多个mysql实例和表,因此我们有表_001、表_002等。用户经常查询他们最近的行,这意味着最近的行是热的,而旧的行是冷的


我想知道在这种情况下,在每个分片表表\u 001、表\u 002等中是否仍然需要mysql分区。我的意见是否定的。如果我们已经将数据分片到许多子表中,为什么我们需要使用分区的另一种子表?分区实际上在内部是独立的表,对吗?

拆分表有4种方法:

切分-多个服务器上的每一个上的一些行。这对于“写缩放”很有用。似乎不适合你。 分区-一种特殊的语法,用于构建子表,但引用它时将其当作单个表。只有极少数情况下,这样做可以提高性能。我们需要查看您的查询以进一步讨论此问题。 手动将一个表拆分为表_001等-一次又一次,这是本论坛上的建议。这总是被认为是个坏主意。 复制-通过在一个主设备上挂起许多从设备,可以实现读取扩展。这将允许同时进行更多查询。我不认为这是你的“正确”解决方案。在复制中,您必须将数据写入一个位置,然后才能获得许多相同的数据副本。 是否要删除旧数据?如果是,则按RANGETO_天划分。。使清除更加有效。但这并不一定能提高选择性绩效;让我们看看你的选择

您是否会对数据进行汇总,形成数据仓库报告?如果是这样,我们可以进一步讨论

回复:插入率

使用InnoDB,一个大表本质上与多个小表或多个分区一样容易插入。200不是一个很大的插入率

你批量生产插页吗?即插入。。。价值观还是使用加载数据?其中任何一种都可能维持1000/秒以上。 你有很多索引吗?它们在一定程度上是高插入率的负担。让我们看一下SHOW CREATE TABLE,以便进一步讨论。 有多个线程执行插入操作吗? 有关真正高的插入率,请参见。 SSD允许更高的插入速率。
表分区意味着为每个分区创建单独的表-正确。数据被大量写入。我们已经计划进行切分,因此我们将有多个mysql实例,其中有多个数据库,每个数据库中有多个表,如“table_001”、“table_002”等。我想确认的是,如果子表table_001、table_002等中仍然需要分区@MouhongLin-无分区,每个实例没有多个表。取而代之的是碎片。请提供每秒1行的摄取率,2个样本选择3是否清除旧数据。对于这些,我要么同意你的方法,要么解释为什么你的方法没有帮助。大约每秒写200次。选择是罕见的,所以我认为只读奴隶不会有帮助。通过较小的表,我希望保持表较小,这样DDL操作将更容易。@MouhongLin-过早优化。我们可以在一台服务器上以每秒200次的速度运行到一个表中。看看我在回答中添加了什么。谢谢Rich。但是一个表将导致大型表,这将使DDL操作在未来变得困难?