mysql – 存储引擎,用于大量不断插入的数据,应立即可用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 存储引擎,用于大量不断插入的数据,应立即可用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1647字,纯文字阅读大概需要3分钟。
内容图文
![mysql – 存储引擎,用于大量不断插入的数据,应立即可用](/upload/InfoBanner/zyjiaocheng/907/25240d509a5e470a95841a24f3ec0b0d.jpg)
我们的服务器(Debian上的几个Java应用程序)处理应该是的传入数据(GNSS观察):
>立即(延迟<200ms)交付给其他应用程序,
>存储以供进一步使用.
有时(可能每天几次)将从数据库中提取大约数百万个存档记录.记录大小约为12个双精度字段时间戳和一些ID.没有更新; DELETE是非常罕见的但是很大.传入流量高达每秒100条记录.所以我不得不为这些数据选择存储引擎.
我尝试使用MySQL(InnoDB).一个应用程序插入,其他应用程序不断检查最后一个记录ID,如果更新,则获取新记录.这部分工作正常.但我遇到了以下问题:
>记录非常大(每条记录大约200-240字节).
>获取数百万个存档记录是不可接受的缓慢(几十分钟或更长时间).
基于文件的存储将工作得很好(因为在DB的中间没有插入,选择大多像’WHERE ID = 1和2000和3000之间的时间’,但还有其他问题:
>寻找新数据可能并不那么容易.
>日志和配置等其他数据存储在同一个数据库中,我更喜欢为所有内容创建一个数据库.
你能建议一些合适的数据库引擎(首选SQL,但不是必需的)?也许有可能微调MySQL以减少记录大小和获取连续数据条的时间?
MongoDB是不可接受的,因为数据库大小限制在32位计算机上.任何不能为最近插入的数据提供快速访问的引擎也是不可接受的.
解决方法:
确实无法从磁盘加载数百万条记录需要多长时间.您的32位要求意味着您可以使用多少RAM来用于基于内存的数据结构.但是,如果您想使用MySQL,您可以使用多种表类型获得良好的性能.
如果你需要非常快速的非阻塞插入.您可以使用黑洞表类型和复制.发生插入的服务器具有黑洞表类型,该表类型复制到表为Innodb或MyISAM的另一台服务器.
由于你不做UPDATE,我认为在这种情况下MyISAM会比Innodb更好.您可以为MyISAM使用MERGE表类型(不适用于Innodb).不确定你的数据集是什么样的,但你每天可以有1个表(小时,星期?),那么你的MERGE表就是这些表的超集.假设您希望按日删除旧数据,只需将MERGE表重新声明为不包括旧表.这个动作是即时的.丢弃旧表也非常快.
要检查新数据,您可以直接查看“今天”表,而不是通过MERGE表.
内容总结
以上是互联网集市为您收集整理的mysql – 存储引擎,用于大量不断插入的数据,应立即可用全部内容,希望文章能够帮你解决mysql – 存储引擎,用于大量不断插入的数据,应立即可用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。