MySQL的“分区”与分裂数据到不同的表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL的“分区”与分裂数据到不同的表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1305字,纯文字阅读大概需要2分钟。
内容图文
![MySQL的“分区”与分裂数据到不同的表](/upload/InfoBanner/zyjiaocheng/880/fd5de94ea09849f9930c3cf6a70da5b9.jpg)
我们有一个名为posts_content的mysql表.
结构如下:
CREATE TABLE IF NOT EXISTS `posts_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`post_id` int(11) NOT NULL,
`forum_id` int(11) NOT NULL,
`content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=79850 ;
问题在于桌子越来越大了.数千兆字节的数据(我们有一个搜寻引擎).
我们每天都在向表中插入数据,但很少检索数据.现在,随着桌子变得越来越大,它变得越来越难以处理桌子.
我们讨论了两种可能性
>使用MySQL的分区功能通过forum_id(约50个Forum_id)对表进行分区,因此大约会有50个分区.请注意,即使每个分区最终都将再次增长到数十亿字节的数据,甚至可能最终需要自己开车
>为每个forum_id创建单独的表,并按此拆分数据.
我希望我已经清楚地解释了这个问题.从长远来看,我需要知道的是上述两个中的哪一个是更好的解决方案.什么是副词显示在两种情况下.
感谢您
解决方法:
区别在于,在第一种情况下,您让MySQL进行分片,而在第二种情况下,您是自己做的. MySQL不会扫描任何不包含数据的分片,但是,如果您有一个查询WHERE forum_id IN(…),则可能需要扫描多个分片.据我所记得,在这种情况下,操作是同步的,例如MySQL一次查询一个分区,您可能想要异步实现它.通常,如果您自己进行分区,则更加灵活,但是对于简单分区,基于forum_id,如果一次仅查询1个forum_id,则MySQL分区是可以的.
我的建议是阅读有关分区的MySQL文档,尤其是restrictions and limitations部分,然后再决定.
内容总结
以上是互联网集市为您收集整理的MySQL的“分区”与分裂数据到不同的表全部内容,希望文章能够帮你解决MySQL的“分区”与分裂数据到不同的表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。