search
HomeDatabaseMysql Tutorial MySQL再度失势:继维基百科之后,Google也迁移到了MariaDB

请大家先看一下:对子查询优化,各版本的执行计划,就不难发现为啥谷歌要把MySQL给抛弃了。很好的一个产品,被Oracle做成了这样。。。摘要:即使饱受非议,MySQL

请大家先看一下:对子查询优化,各版本的执行计划,就不难发现为啥谷歌要把MySQL给抛弃了。


wKiom1NfVryz56B1AAKC3iZzByU389.jpg

wKioL1NfVpOip4c7AAKT3Ys8zWc220.jpg

wKiom1NfVr3SwMqYAAKzETLgqYM238.jpg

很好的一个产品,被Oracle做成了这样。。。


摘要:即使饱受非议,MySQL当下仍然是开源数据库的人气之王。然而光鲜的背后,其神位似乎已摇摇欲坠。继维基百科及多家Linux发行公司弃用MySQL之后,互联网巨头Google也果断使用MariaDB来替换公司内上万的MySQL实例。


尽管被Oracle捕获后,MySQL上的争议就从未停止;但时至今日,MySQL仍是最具人气的开源数据库:

wKiom1NfVxjzLhOsAAGNNaF2rQU448.jpg

简单、免费、扩展性、相对成熟等一直都是MySQL的吸引所在,然而随着自身脚步的放缓、各个竞争对手的追赶,这些杀手级特性已不在有吸力(甚至沦为弱势)。虽然PostgreSQL一直被当作MySQL的直接竞争对手,然而真正给予其致命一击的似乎更像是MariaDB,这个由MySQL旧部所开发的产品。

那些年被重量级用户抛弃的MySQL

MySQL在各大Linux发行版中的失势

由于不满MySQL被Oracle收购后的日渐封闭与缓慢的更新,众多Linux发行版逐渐抛弃了这个人气开源数据库,而转向了MariaDB,其中包括:

以上是一些不完全的统计(比如还有 openSUSE等等),同时我们也相信,随着MariaDB得到更多的认可,类似的更替将出现在更多的Linux发行版中。


MySQL在重量级公司中的失势

  • Apple:在2011年Sun被Oracle收购不久后,Apple就抛弃了MySQL。当然,他们选择的是PostgreSQL,这里不得不佩服一下Apple高层的远见。

  • Wikipedia:在2012年底,Wikipedia曾公布了一个测试:英文维基的一个从(slave)数据库从MySQL5.1 + Facebook补丁集迁移到了MariaDB 5.5.28。通过全面测试发现,MariaDB的查询效率提升了3%-15%,平均提升了8%,期间并没有任何异常发生;以qp为单位,吞吐量提升了2%-10%。而时隔将近半年,Wikipedia已正式完成迁移。

  • 互联网巨头Google的倒戈

    作为最具人气开源数据库,MySQL绝非浪得虚名——除了Apple之外,,Google、Facebook、Twitter也大量使用了MySQL,纷纷发布了自己的MySQL分支/补丁集,并为不少公司所采用。然而据国外媒体Theregister了解到,搜索巨头谷歌正在致力于MySQL到MariaDB的迁移,远离这个Oracle支持下的开源数据库:

    消息来自11日斯坦福的Extremely Large Databases会议上,在Google指派了一个工程师去MariaDB基金会的一星期后。虽然消息并非Google官方发布,但是却是基于Google高级系统工程师 Jeremy    Cole对MySQL生态系统现状的展示。

    据悉,为了让MariaDB更有效,Google正在致力于对它的升级和修补——用以迁移Google上万的MySQL实例。Cole说道:

    当下主要运行的MySQL 5.1版本已经不能匹配公司的脚步,因此我们转移到了MariaDB 10.1。

    根据SkySQL(MariaDB合并后的公司名,大部分员工由MySQL旧部组成,点击查看详情)Patrik Sallner还透露,在年初Google已经开始与MariaDB基金会达成协作:

    他们将先前许多运行在MySQL上的数据库迁移至了MariaDB,我们已经与他们达成合作来致力特性的开发,帮助完成这项迁移。对于我们来说,这是个非常好的借鉴。

    Cole还透露,迁移将涉及到上万台的MySQL服务器,当下两个公司正在致力MariaDB可靠性及特性的研发。

    同时,Google会将所有MySQL服务器转换成MariaDB。不管Oracle动机与否,通过这项举措,Google将完全消除对其技术的依赖。自MySQL 4.0版本以来,这个开源数据库(经大量修改)就在Google大量使用,最近使用的版本是5.1。据Cole了解到,MariaDB 10.0大致相当于MySQL5.6版本,因此工作量并不是很大。在被问到为什么会选择MariaDB作为MySQL替代,Cole如此解释:

    在我看来,除下个别特性及实现方法,两个数据库有着太多相同的特性。但是在理念上,它们却存在着众多的不同。我很希望看到MySQL能有一个单独的社区,然而在Oracle的统治下显然并不可能,而MariaDB的未来则存在太多的可能。

    Google大范围的MariaDB可能会从Chocolate Factory尝试开始,用以减少开发者对MySQL的依赖,同样也是对Oracle开源数据库生态系统影响力的削弱。

    写在最后

    基于Google在开发者心目中的地位,这一举措对MySQL的影响可想而知。虽然我们无法理解Oracle当初间接收购MySQL的动机所在,但是却可以断定当下的局面绝对不是这个数据库巨头想看到的。在未来,MySQL的地位可能会受到更多数据库管理系统的威胁,然而当下给予其“致命一击”的显然当属MariaDB!(审校/王鹏)


    文章转自:



    本文出自 “贺春旸的技术专栏” 博客,请务必保留此出处

    Statement
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    How does MySQL index cardinality affect query performance?How does MySQL index cardinality affect query performance?Apr 14, 2025 am 12:18 AM

    MySQL index cardinality has a significant impact on query performance: 1. High cardinality index can more effectively narrow the data range and improve query efficiency; 2. Low cardinality index may lead to full table scanning and reduce query performance; 3. In joint index, high cardinality sequences should be placed in front to optimize query.

    MySQL: Resources and Tutorials for New UsersMySQL: Resources and Tutorials for New UsersApr 14, 2025 am 12:16 AM

    The MySQL learning path includes basic knowledge, core concepts, usage examples, and optimization techniques. 1) Understand basic concepts such as tables, rows, columns, and SQL queries. 2) Learn the definition, working principles and advantages of MySQL. 3) Master basic CRUD operations and advanced usage, such as indexes and stored procedures. 4) Familiar with common error debugging and performance optimization suggestions, such as rational use of indexes and optimization queries. Through these steps, you will have a full grasp of the use and optimization of MySQL.

    Real-World MySQL: Examples and Use CasesReal-World MySQL: Examples and Use CasesApr 14, 2025 am 12:15 AM

    MySQL's real-world applications include basic database design and complex query optimization. 1) Basic usage: used to store and manage user data, such as inserting, querying, updating and deleting user information. 2) Advanced usage: Handle complex business logic, such as order and inventory management of e-commerce platforms. 3) Performance optimization: Improve performance by rationally using indexes, partition tables and query caches.

    SQL Commands in MySQL: Practical ExamplesSQL Commands in MySQL: Practical ExamplesApr 14, 2025 am 12:09 AM

    SQL commands in MySQL can be divided into categories such as DDL, DML, DQL, DCL, etc., and are used to create, modify, delete databases and tables, insert, update, delete data, and perform complex query operations. 1. Basic usage includes CREATETABLE creation table, INSERTINTO insert data, and SELECT query data. 2. Advanced usage involves JOIN for table joins, subqueries and GROUPBY for data aggregation. 3. Common errors such as syntax errors, data type mismatch and permission problems can be debugged through syntax checking, data type conversion and permission management. 4. Performance optimization suggestions include using indexes, avoiding full table scanning, optimizing JOIN operations and using transactions to ensure data consistency.

    How does InnoDB handle ACID compliance?How does InnoDB handle ACID compliance?Apr 14, 2025 am 12:03 AM

    InnoDB achieves atomicity through undolog, consistency and isolation through locking mechanism and MVCC, and persistence through redolog. 1) Atomicity: Use undolog to record the original data to ensure that the transaction can be rolled back. 2) Consistency: Ensure the data consistency through row-level locking and MVCC. 3) Isolation: Supports multiple isolation levels, and REPEATABLEREAD is used by default. 4) Persistence: Use redolog to record modifications to ensure that data is saved for a long time.

    MySQL's Place: Databases and ProgrammingMySQL's Place: Databases and ProgrammingApr 13, 2025 am 12:18 AM

    MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

    MySQL: From Small Businesses to Large EnterprisesMySQL: From Small Businesses to Large EnterprisesApr 13, 2025 am 12:17 AM

    MySQL is suitable for small and large enterprises. 1) Small businesses can use MySQL for basic data management, such as storing customer information. 2) Large enterprises can use MySQL to process massive data and complex business logic to optimize query performance and transaction processing.

    What are phantom reads and how does InnoDB prevent them (Next-Key Locking)?What are phantom reads and how does InnoDB prevent them (Next-Key Locking)?Apr 13, 2025 am 12:16 AM

    InnoDB effectively prevents phantom reading through Next-KeyLocking mechanism. 1) Next-KeyLocking combines row lock and gap lock to lock records and their gaps to prevent new records from being inserted. 2) In practical applications, by optimizing query and adjusting isolation levels, lock competition can be reduced and concurrency performance can be improved.

    See all articles

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    AI Hentai Generator

    AI Hentai Generator

    Generate AI Hentai for free.

    Hot Article

    R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
    3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Best Graphic Settings
    3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. How to Fix Audio if You Can't Hear Anyone
    4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: How To Unlock Everything In MyRise
    1 months agoBy尊渡假赌尊渡假赌尊渡假赌

    Hot Tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

    MantisBT

    MantisBT

    Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

    SecLists

    SecLists

    SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    Powerful PHP integrated development environment