如果使用得当,MySQL也可以化身NoSQL
随着互联网和移动互联网的发展,各个机构都需要支撑远超过以往的数据。而在这个需求的刺激下,IT领域出现了大量数据处理技术,其
【编者按】随着互联网和移动互联网的发展,各个机构都需要支撑远超过以往的数据。而在这个需求的刺激下,IT领域出现了大量数据处理技术,其中之一就是 NoSQL。灵活的数据类型,,高效的处理能力,让NoSQL已占据数据管理系统的一席之地,比如人气NoSQL数据库MongoDB。然而在Wix工程实践中,他们发现,大量场景中其实并不需要NoSQL,反而成熟的RDBMS更具效益,比如MySQL。下面一起看Wix工程主管 Aviran Mordo的分享,由 OneAPM工程 师翻译。
以下为译文
开发人员选择NoSQL数据库一般都是根据主观臆断,或者“关系型数据库性能不如NoSQL数据库”这个错误的理念。此外,在做数据库选型时,开发人员往往还忽视了运维上的开销。实际上根据Wix的实践发现,大部分情况下都不必去选择NoSQL数据库,而且如果使用得当的话,MySQL也可以是一个优秀的NoSQL数据库。
在可扩展系统构建时,一个很重要的考量是使用的技术是否成熟,选择成熟的技术意味着出错时能够迅速恢复。当然,开发者也可以在项目中使用最新最牛的NoSQL数据库,而这个数据库在理论上也可以良好地运行,然而在生产环境中出现了问题恢复需要多久?技术上已有的知识和经验积累对于问题缓解至关重要,当然这个积累也包括了Google可以搜索到的内容。相比之下,关系型数据库已经存在了超过四十年,业界对于关系型数据库的维护也积累了大量的经验。基于这些考虑,在新项目做技术选型时通常会选择MySQL,而不是NoSQL数据库,除非NoSQL真的有非常非常明显的优势,比如数据量太大就不适合使用MySQL。
必须承认MySQL也有自己的问题。在大规模系统中使用的话可能会碰到性能上的问题。为实现MySQL性能的最优化,这里总结了几条经验,其中之一是避免数据库级别的事务。因为事务需要数据库采用锁来实现,从而会影响数据库性能。通常情况下会使用逻辑应用程序级的锁来 替换,从而减少负载并获得一个更好的性能。
举个例子,以发票结构为例。如果某个发票有多个行项目,取代在单事务将所有行项目写入,这里更应该在非事务情况下逐行写入。在所有行全部写入数据库后,这里还会写入一个首记录,它包含了指向所有行项目ID的指针。这样一来,如果所有行中有一行写入失败,那么这行的首记录就会不存在,从而整个事务失败。这么做虽然可能会造成一些垃圾记录,但在存储介质如此便宜的今天这显然不是什么大问题,而这些垃圾记录也可以做定期删除。
下面也中介了一些MySQL实践经验:
在Wix,MySQL经常会被当做键值存储,比如在一列中储存JSON对象,从而在不改变数据库模式下对数据结构模式进行扩展。在MySQL 中,使用主键读取也很快,Wix就通过这个方式获得了亚毫秒级的读取速度,完全可以支撑整个使用场景。基于以上这些原因,MySQL完全可以看作一个符合 ACID原则的NoSQL数据库。至于数据库的大小,一个MySQL实例支持几亿条数据是没什么问题的。
关系型数据库的一个鲜明的优势是不用考虑最终一致性,而这个在NoSQL数据库中并不是原生支持的。本文也不是贬低NoSQL,因为关系型数据库已有限制也非常多:严格的数据结构和大小限制。这里只是想提醒开发人员,在选择新技术时不要忽视运维成本。
原文链接: MySQL is a Great NoSQL Database (责编/仲浩)
本文永久更新链接地址:

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Avec le développement d’Internet, l’analyse des mégadonnées et le traitement de l’information en temps réel sont devenus un besoin important pour les entreprises. Afin de répondre à de tels besoins, les bases de données relationnelles traditionnelles ne répondent plus aux besoins du développement commercial et technologique. Au lieu de cela, l’utilisation de bases de données NoSQL est devenue une option importante. Dans cet article, nous aborderons l'utilisation de SpringBoot intégré aux bases de données NoSQL pour permettre le développement et le déploiement d'applications modernes. Qu'est-ce qu'une base de données NoSQL ? NoSQL n'est pas seulement du SQL

Dans le développement d'applications Web modernes, les bases de données PHP et NoSQL sont devenues des choix technologiques très populaires. Dans le passé, PHP a été largement utilisé pour développer des sites Web et des applications Web dynamiques, tandis que la base de données NoSQL est une nouvelle technologie de stockage de données apparue récemment, offrant une solution plus flexible et évolutive. Dans cet article, nous explorerons les bases de données PHP et NoSQL dans des applications pratiques. PHP est un langage de programmation côté serveur, à l'origine

En 2025, les plateformes mondiales de trading de devises virtuelles numériques sont farouchement compétitives. OKX se classe d'abord avec sa forte force technique et sa stratégie de fonctionnement mondiale, et Binance suit de près avec une liquidité élevée et des frais faibles. Des plates-formes telles que Gate.io, Coinbase et Kraken sont à l'avant-garde avec leurs avantages respectifs. La liste couvre les plateformes de trading telles que Huobi, Kucoin, BitFinex, Crypto.com et Gemini, chacune avec ses propres caractéristiques, mais l'investissement devrait être prudent. Pour choisir une plate-forme, vous devez prendre en compte des facteurs tels que la sécurité, la liquidité, les frais, l'expérience utilisateur, la sélection des devises et la conformité réglementaire, et investir rationnellement

La base de données NoSQL (NotOnlySQL) est un type de base de données qui s'est développé rapidement ces dernières années. Par rapport aux bases de données relationnelles traditionnelles, elle offre une meilleure évolutivité et de meilleures performances et prend en charge davantage de types de données et de méthodes de stockage de données. Parmi eux, MongoDB est une base de données NoSQL qui utilise le modèle de base de données de documents et est largement utilisée dans les applications Web, les applications mobiles, les appareils Internet des objets et d'autres domaines. Cet article présentera comment utiliser PHP pour écrire les opérations de base de la base de données MongoDB et démontrera à travers des exemples comment répondre

Facteur premier - Dans la théorie des nombres, les facteurs premiers d'un entier positif sont les nombres premiers qui divisent cet entier exactement. Le processus de recherche de ces nombres est appelé factorisation entière ou factorisation première. Exemple - Les facteurs premiers de 288 sont : 288 = 2x2x2x2x2

Top 10 des plates-formes de trading de devises numériques: 1. Okx, 2. Binance, 3. Gate.io, 4. Huobi Global, 5. Kraken, 6. Coinbase, 7. Kucoin, 8. Bitfinex, 9. Crypto.com, 10. Gemini, ces échanges ont leurs propres caractéristiques et les utilisateurs peuvent choisir la plate-forme qui leur convient sur des facteurs tels que la sécurité, les frais de sécurité, les frais de la sécurité, les frais de sécurité, les arêtes de la sécurité.

Classement des dix principales plates-formes de trading de devises virtuelles (dernier en 2025): Binance: le leader mondial, la liquidité élevée et la réglementation ont attiré l'attention. OKX: grande base d'utilisateurs, prend en charge plusieurs devises et fournit un trading à effet de levier. GATE.IO: une échange senior, avec une variété de méthodes de paiement de la monnaie fiduciaire, fournissant une variété de paires de trading et de produits d'investissement. Bitget: Échange de dérivés, liquidité élevée, frais faibles. Huobi: Un ancien échange qui prend en charge une variété de devises et de paires de trading. Coinbase: un échange américain bien connu, strictement réglementé. Phemex et ainsi de suite.

La différence entre nosql et mysql est la suivante : 1. MySQL est une base de données relationnelle basée sur la conception de tables, tandis que NoSQL est essentiellement une conception non relationnelle basée sur des documents. 2. Les restrictions strictes du schéma de MySQL ne sont pas faciles à étendre, tandis que NoSQL peut être étendu ; grâce à un schéma dynamique, les fonctionnalités s'étendent facilement et bien plus encore.
