【IT168 专稿】说到大数据,不得不提的就是阿里巴巴。这家全球领先的电子商务企业,每天处理的数据量是其他任何公司都无法比拟的,它也正在转型成为一家真正意义上的数据公司——MySQL就是阿里巴巴转型的重要武器。曾经采访过阿里的一位数据库架构师,他认为阿里将开源MySQL的性能达到最佳状态,超越任何关系型数据库和NoSQL。
2009年,甲骨文通过收购Sun获得了MySQL的版权,业界就开始质疑甲骨文的用意,担心MySQL的未来发展。而甲骨文在收购时就曾表态,会比Sun投入更多的精力来开发MySQL。目前看来,至少MySQL社区版和第三方版本的发展并没有受到收购的影响,MySQL的商业版本也在持续的改进和更新中。下面笔者将盘点一下甲骨文推出的MySQL 5.6正式版的一些新功能,及其针对大数据时代的改进。
一、MySQL 5.6正式版功能盘点
2013年初,甲骨文发布MySQL 5.6正式版,通过提升MySQL优化诊断来提供更好的查询执行时间和诊断功能,通过增强InnoDB存储引擎来提高性能处理量和应用可用性,通过MySQL复制的新功能以提高扩展性和高可用性,并且拥有许多新增强功能,包括地理信息系统、精确的空间操作、增强的IPv6合规性和优化服务器的默认设置。
凭借增强的性能、可扩展性、可靠性和可管理性优势,MySQL 5.6可帮助用户满足最苛刻的网络、云和嵌入式的应用需求。通过子查询优化、在线数据定义语言(DDL)操作、NoSQL访问InnoDB、新的性能架构检测以及更好的条件处理,MySQL 5.6可极大提高开发人员的灵活性。
四大亮点:
1.通过提升MySQL优化诊断来提供更好的查询执行时间和诊断功能
·子查询优化:通过在执行之前优化子查询来简化查询开发。新效率体现在查询执行时间内,显著提升结果集的选择、分类并返回交付。
·新增的指数条件下推(Index Condition Pushdown)和批量密钥访问(Batch Key Access)功能可提高选择查询量高达280倍。
·增强的优化诊断功能:通过EXPLAIN进行INSERT,UPDATE和DELETE操作。EXPLAIN计划以JSON格式输出,提供更精确的优化指标和更好的可读性,优化跟踪(Optimizer Traces)可跟踪优化决策过程。
2.通过增强InnoDB存储引擎来提高性能处理量和应用可用性
·提升处理和只读量高达230%:通过InnoDB重构,以尽量减少传统线程,冲洗和清理互斥冲突和瓶颈,从而在高负重OLTP系统上,实现更好的并发性,进而针对只读工作负载(2)和处理,显著提高处理量。
·提高可用性:在线DDL操作可使数据库管理员添加索引和执行表变更,且应用程序仍可用于更新。
·InnoDB全文搜索:允许开发人员在InnoDB表上,建立全文索引,以表示基于文本的内容,并加快单词和短语的应用搜索。
·简单、关键值查找:通过熟悉的Memcached API,对InnoDB的灵活NoSQL访问,提供了InnoDB数据的简单、关键值查找。用户可实现在同一个数据库,关键值操作和复杂的SQL查询的“双赢”效应。
3.通过MySQL复制的新功能以提高扩展性和高可用性
·自我修复功能的复制集群:新增的全球处理识别和使用程序(Global Transaction Identifiers and Utilities)能更方便的实现自动检测并从故障中恢复。碰撞安全复制功能(Crash-Safe Replication)使二进制日志和从动装载,在崩溃和恢复复制的情况下,能自动恢复到在复制流的正确位置上,而无需管理员干预。通过自动检测和警告错误,Checksums可跨集群维护数据的完整性。
·高性能复制集群:通过多线程的从动装置(3),Binlog组提交和基于行复制的优化(Binlog Group Commit and Optimized Row-Based Replication)使复制能力提高了5倍,让用户在向外扩展其跨商品系统的工作负载时,能够最大限度地提高复制性能和效率。.
·时间延迟复制:能防止发生在主机的操作失误,如意外删除表格等。
4.增强的性能架构(PERFORMANCE_SCHEMA):新检测让用户能够更好地监控资源最密集的查询、对象、用户和应用程序。也可通过查询、线程、用户、主机和对象来实现新汇总统计信息概要。增强功能允许更简便的默认配置,且只耗费不到5%的成本。
二、MySQL针对大数据的改进
1、NoSQL功能
在甲骨文最新发布的MySQL 5.6正式版中,增加了一些NoSQL特性,即通过Memcached API对InnoDB的灵活NoSQL访问,提供了InnoDB数据的简单、关键值查找。从此可以看出NoSQL对关系数据库的确产生了巨大的影响,MySQL的这一举动可以让开发人员更加方便的使用NoSQL和关系数据库。
但有很多技术人员认为MySQL的这一功能略显鸡肋,并不能真正发挥NoSQL的作用。以扩展性为例,NoSQL的一个主要优势就是横向扩展(Scale Out)。例如Cassandra能够简单透明地在多个机器上进行扩展,它们可以是廉价的硬件组成的集群,而无需购买昂贵的服务器或者SAN存储。这一点MySQL 5.6是做不到的。
2、支持Hadoop
MySQL团队最新推出了MySQL Applier for Hadoop(以下简称Hadoop Applier),希望解决从非MySQL服务器复制数据的问题。
例如,复制事件中的从服务器可能是一个数据仓库系统,如Apache Hive,它使用Hadoop分布式文件系统(HDFS)作为数据存储区。如果你有一个与HDFS相关的Hive元存储,Hadoop Applier就可以实时填充Hive数据表。数据是从MySQL中以文本文件形式导出到HDFS,然后再填充到Hive。
操作很简单,只需在Hive运行HiveQL语句'CREATE TABLE',定义表的结构与MySQL相似,然后运行Hadoop Applier即可开始实时复制数据。
在Hadoop Applier之前,还没有任何工具可以执行实时传输。之前的解决方案是通过Apache Sqoop导出数据到HDFS,尽管可以批量传输,但是需要经常将结果重复导入以保持数据更新。在进行大量数据传输时,其他查询会变得很慢。且在数据库较大的情况下,如果只进行了一点更改,Sqoop可能也需要较长时间来加载。
而Hadoop Applier则会读取二进制日志,只应用MySQL服务器上发生的事件,并插入数据,不需要批量传输,操作更快,因此并不影响其他查询的执行速度。
小结
MySQL是业界最优秀的一款开源关系型数据库软件,拥有大批追随者,他们不仅使用MySQL,也为MySQL社区做贡献,形成一个良好的生态系统。对于MySQL而言,对NoSQL和Hadoop的支持只能是对大数据时代的一种迎合,对于技术人员的作用不置可否。

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

MySQL convient aux petites et grandes entreprises. 1) Les petites entreprises peuvent utiliser MySQL pour la gestion des données de base, telles que le stockage des informations clients. 2) Les grandes entreprises peuvent utiliser MySQL pour traiter des données massives et une logique métier complexe pour optimiser les performances de requête et le traitement des transactions.

INNODB empêche efficacement la lecture des fantômes via le mécanisme de blocage à clé suivante. 1) Le blocage de touche suivante combine le verrouillage des lignes et le verrouillage de l'espace pour verrouiller les enregistrements et leurs lacunes pour empêcher l'insertion de nouveaux enregistrements. 2) Dans les applications pratiques, en optimisant la requête et en ajustant les niveaux d'isolement, la concurrence des verrouillage peut être réduite et les performances de la concurrence peuvent être améliorées.

MySQL n'est pas un langage de programmation, mais son langage de requête SQL a les caractéristiques d'un langage de programmation: 1. SQL prend en charge le jugement conditionnel, les boucles et les opérations variables; 2. Grâce aux procédures, déclencheurs et fonctions stockées, les utilisateurs peuvent effectuer des opérations logiques complexes dans la base de données.

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

MySQL est un système de gestion de base de données relationnel open source adapté au stockage, à la gestion, à la requête et à la sécurité des données. 1. Il prend en charge une variété de systèmes d'exploitation et est largement utilisé dans les applications Web et autres domaines. 2. Grâce à l'architecture client-serveur et à différents moteurs de stockage, MySQL traite efficacement les données. 3. L'utilisation de base comprend la création de bases de données et de tables, d'insertion, d'interrogation et de mise à jour des données. 4. L'utilisation avancée implique des requêtes complexes et des procédures stockées. 5. Les erreurs courantes peuvent être déboguées par le biais de la déclaration Explication. 6. L'optimisation des performances comprend l'utilisation rationnelle des indices et des instructions de requête optimisées.

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Les mécanismes de verrouillage d'InnoDB incluent des verrous partagés, des verrous exclusifs, des verrous d'intention, des verrous d'enregistrement, des serrures d'écart et des mèches suivantes. 1. Le verrouillage partagé permet aux transactions de lire des données sans empêcher d'autres transactions de lire. 2. Lock exclusif empêche les autres transactions de lire et de modifier les données. 3. Le verrouillage de l'intention optimise l'efficacité de verrouillage. 4. Enregistrement de l'indice de verrouillage d'enregistrement. 5. Écart d'enregistrement de l'indice des verrous de verrouillage de l'espace. 6. Le verrouillage de la touche suivante est une combinaison de verrouillage des enregistrements et de verrouillage de l'écart pour garantir la cohérence des données.


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

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire