gpt4 book ai didi

具有大量插入和删除的表的 MySQL 分区

转载 作者:行者123 更新时间:2023-11-29 00:44:21 25 4
gpt4 key购买 nike

我有一个表,我们每天在其中插入大约 2000 万个条目(没有任何限制的盲插入)。我们有两个外键,其中一个是对包含大约 1000 万个条目的表的引用 ID。

我打算删除此表中超过一个月的所有数据,因为不再需要这些数据。但问题是,随着大量插入的发生,如果我开始删除,表将被锁定,插入将被阻止。

我想知道我们是否可以根据月份对表进行分区。这样,我希望当我尝试删除所有超过 2 个月的数据时,这些数据应该在不同的分区中并且插入应该发生在不同的分区中,并且删除锁不会阻止读锁。

请告诉我这是否可行。我对使用 DB 还很陌生,所以如果我的想法有问题,请告诉我。

最佳答案

来自MySQL documentation

For InnoDB and BDB tables, MySQL uses table locking only if you explicitly lock the table with LOCK TABLES. For these storage engines, avoid using LOCK TABLES at all, because InnoDB uses automatic row-level locking and BDB uses page-level locking to ensure transaction isolation.

我不确定你是否有问题。您是否对此进行了测试并发现了锁定问题,或者您现在只是在对它们进行理论化?

关于具有大量插入和删除的表的 MySQL 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com