MySQL – 我在哪里可以找到关于Blob vs文件系统性能的指标?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL – 我在哪里可以找到关于Blob vs文件系统性能的指标?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1982字,纯文字阅读大概需要3分钟。
内容图文
![MySQL – 我在哪里可以找到关于Blob vs文件系统性能的指标?](/upload/InfoBanner/zyjiaocheng/897/04cc9328363945efa220c07b6226444f.jpg)
我知道并理解在数据库中存储blob数据有性能命中,但数据的blob部分很少被检索/查看,它用于较小的数据(绝大多数在256k以下,最大为10mb) ,它不会被大多数客户使用,预计总行数相对较低,很可能不到50万,即使不是更少.此外,一些数据是动态的,并且可能会对某些用户进行更改,因为它不是静态图像.换句话说,我们处于是否值得的边缘.
我一直在阅读,最好存储在文件系统中,但我找不到显示性能差异的实际指标,只是人们在没有任何具体证据或指标的情况下重复彼此.对我们来说,可能值得花费性能来换取完全ACID以及保证我们所有的备份都完全同步.
话虽这么说,有人知道或有任何真实世界的指标,以显示存储项目作为blob与文件系统之间的性能差异.我试图了解性能损失是否值得,而不是盲目地遵循一般的经验法则,并且花费至少2-3个小时后我还没有能够看到任何人显示任何实际数字.这一切都只是没有具体的话语.
顺便说一句,这是一个MySQL InnoDB表.实际数据表有一个指向blob数据表的链接,因此blob不在主要数据库中,只有在需要避免任何I / O问题时才会被检索.换句话说,它不是文件系统上数据的路径,而是另一个只有blob的表的ID.如何在性能方面进行比较?它变差了25%吗?这是100%吗?是200-500%?是1000%吗?
如果成本仅为100%-200%,那么对我们来说可能是值得的,因为很少再次检索数据.因此,即使我们说有10,000个并发用户,也许只有50个用户会同时检索他们的blob数据.是的,数据特定于每个用户,而不是图像.
解决方法:
处理数据的主要成本是I / O.无论是OS中的4KB块(加上目录遍历)还是InnoDB中的16KB块(加上间接块查找),您执行的I / O数量大致相同.
文件系统和InnoDB以完全不同的方式缓存;这可能会产生差异 – 取决于博客的可缓存程度.
你说“很少检索”.那为什么速度很重要?
所以,我怀疑它是否会超过25%的差异.我无法预测哪个会更快.
至于空间,又有几个不同之处,因此很难预测哪个更紧.在任何情况下,对于您提到的尺寸斑点,差异不能超过约2%.
blob的可压缩程度如何? (大多数图像格式已经压缩;文本通常可压缩为3:1.)如果是可压缩的,则在客户端中执行此操作. (InnoDB的内置可选压缩更容易,但不太好.)
并且,是的,将它放在“并行表”中(如您所提到的)通常更好.
另一点 – 如果blob是一个发往网页的图像,只需将其放在一个文件中并说< img srg = file-path>即可.如果它在表BLOB中,您必须做额外的工作才能将其移交给网页.由于I / O是主要区别,我可能希望img标签快2倍.
内容总结
以上是互联网集市为您收集整理的MySQL – 我在哪里可以找到关于Blob vs文件系统性能的指标?全部内容,希望文章能够帮你解决MySQL – 我在哪里可以找到关于Blob vs文件系统性能的指标?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。