sql数据完整性为什么重要
许多博客文章和研究论文都涉及到扩大规模和扩大规模的主题。 例如, 这篇有趣的博客文章就物理维护成本(例如冷却和电耗)方面的两种策略做了一些说明。 对于大型系统而言,当然是不可忽略的方面。
但是,在大规模解决问题之前,请考虑更简单SQL调整机制。 通常,当您的应用程序遇到瓶颈时,它就在数据库层。 许多NoSQL宣传人员使用此事实来推广他们的产品,声称使用NoSQL数据库进行扩展要容易得多。 这可能是正确的,但请问自己:您是否需要一个在高负载下工作的系统? 还是您的瓶颈是性能瓶颈?
换句话说:您有5'000'000个并发用户问题吗? 还是您有一个请求时间超过3秒的问题? 因为如果您遭受后者的困扰,那么您可能不需要横向扩展或向上扩展。 您的“传统”体系结构可能还不错,但是您的数据库/ SQL查询却不是。 受欢迎的use-the-index-luke.com网站上有一篇有趣的文章,介绍了由ORM工具引起的两个顶级性能问题 。 他们是:
- 臭名昭著的N + 1选择问题
- 鲜为人知的仅索引扫描
这两个问题都是由于流行的ORM以几乎不受开发人员影响的方式生成SQL代码而导致的。 人们经常声称,像Hibernate这样的工具所产生的SQL比普通开发人员要好 。 在某种程度上,这是正确的,即普通开发人员可能从不关心实际学习编写更好SQL。 进而导致上述问题。
Hibernate非常擅长生成应用程序无聊的CRUD SQL的70%。 同时,Hibernate从未声称可以替代SQL,因为您将不得不在30%的时间内使用本机SQL。 然后应该使用Hibernate的本机SQL API吗? 还是像jOOQ这样的替代 品 ?
重要的是,当性能很重要时,要重新控制SQL。 了解您的索引 。 了解您的数据库元数据 。 并使用允许您精确编写所需SQL语句的工具。 学习更好SQL可以帮助您节省大量运营成本,因为您可能不需要横向扩展也不需要扩展。
翻译自: https://www.javacodegeeks.com/2013/11/why-staying-in-control-of-your-sql-is-so-important.html
sql数据完整性为什么重要