【重学 MySQL】二、MySQL 介绍

【重学 MySQL】二、MySQL 介绍

  • MySQL 概述
    • MySQL 的主要特点
    • MySQL 的应用场景
    • 结论
  • MySQL 发展史
    • 初始创建与发布
    • 开源与快速成长
    • 重要版本发布
    • 收购与变革
    • 分支与竞争
    • 持续发展与现代应用
  • 关于 MySQL8.0
    • 主要新特性和改进
    • 兼容性和迁移
    • 应用场景
    • 总结
  • 为什么选择 MySQL
  • Oracle VS MySQL
    • 基本特性与定位
    • 成本
    • 性能与扩展性
    • 安全性与数据完整性
    • 易用性与可移植性
    • 其他特性

在这里插入图片描述

MySQL 概述

MySQL 是一种流行的开源关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)来管理或操作数据库。MySQL 由瑞典的 MySQL AB 公司开发,并在 2008 年被 Sun Microsystems 收购,随后 Sun Microsystems 又被 Oracle Corporation 收购。尽管经历了多次所有权变更,MySQL 仍然保持着其开源和免费的特性,并且被广泛用于各种应用程序中,包括 Web 应用、数据仓库、电子商务网站等。

MySQL 的主要特点

  1. 开源和免费:MySQL 是开源的,意味着任何人都可以查看、修改和分发其源代码。此外,它通常也是免费的,这对于预算有限的项目来说是一个巨大的优势。

  2. 跨平台:MySQL 支持多种操作系统,包括 Linux、Windows、macOS 等,这使得它可以在不同的环境中灵活部署。

  3. 高性能:MySQL 提供了高性能的数据库解决方案,支持大量并发连接和快速的数据访问。

  4. 可靠性:MySQL 提供了多种机制来确保数据的完整性和可靠性,包括事务处理、回滚、恢复等。

  5. 灵活性:MySQL 支持多种存储引擎,如 InnoDB、MyISAM、Memory 等,每种存储引擎都有其特定的用途和性能特点,用户可以根据需要选择合适的存储引擎。

  6. 安全性:MySQL 提供了多种安全特性,如用户认证、权限管理、数据加密等,以保护数据免受未授权访问。

  7. 易于使用:MySQL 提供了易于使用的图形界面工具(如 phpMyAdmin)和命令行工具,使得数据库的管理和操作变得简单直观。

MySQL 的应用场景

  • Web 应用:MySQL 是许多 Web 应用的首选数据库,因为它提供了高性能、可靠性和可扩展性。
  • 数据仓库:MySQL 也可以用于构建数据仓库,以存储和分析大量数据。
  • 电子商务:在电子商务领域,MySQL 用于存储和管理用户信息、订单数据、产品目录等。
  • 游戏开发:许多在线游戏使用 MySQL 来存储用户数据、游戏状态和游戏进度等信息。

结论

MySQL 是一种功能强大、灵活且易于使用的开源关系型数据库管理系统。它以其高性能、可靠性和广泛的应用场景而闻名,是许多应用程序的首选数据库解决方案。

MySQL 发展史

MySQL的发展史可以追溯到20世纪90年代初期,以下是其主要发展阶段和关键事件:

初始创建与发布

  • 创建者:MySQL由瑞典的Michael Widenius、David Axmark和Allan Larsson于1994年开始设计,并于1995年成立了MySQL AB公司。
  • 初始版本:MySQL的最初版本于1995年发布,设计目标是一个轻量级、快速的关系型数据库管理系统(RDBMS)。此时,MySQL主要以闭源形式存在。

开源与快速成长

  • 开源发布:在2000年,MySQL改为开源发布,采用了GNU通用公共许可证(GPL),这一举措极大地促进了MySQL在开发者社区中的传播和改进。
  • 功能扩展:随着开源社区的参与,MySQL不断增加新的功能和改进,包括存储过程、触发器、视图、复制和集群支持等,以满足更多复杂应用的需求。

重要版本发布

  • MySQL 3.23:2001年发布的MySQL 3.23版本引入了InnoDB存储引擎,提供了事务支持和行级锁定,极大地增强了MySQL的功能和性能。
  • MySQL 4.0:2000年发布的MySQL 4.0版本带来了更多的功能,如存储过程、触发器、视图和外键支持,提高了MySQL在复杂应用中的可用性。
  • MySQL 5.0及后续版本:MySQL 5.0及之后的版本继续引入性能和功能方面的改进,如更强大的查询优化、InnoDB存储引擎的进一步改进等。

收购与变革

  • Sun Microsystems收购:2008年,Sun Microsystems以10亿美元收购了MySQL AB,这一收购增强了MySQL的市场影响力和技术支持。
  • Oracle收购Sun Microsystems:2010年,Oracle Corporation收购了Sun Microsystems,从而成为MySQL的新所有者。尽管经历了收购,MySQL仍然保持其开源特性,并继续得到开源社区的支持。

分支与竞争

  • MariaDB分支:由于对Oracle收购MySQL的担忧,MySQL的创始人之一Michael Widenius在2010年创建了MariaDB,作为MySQL的开源分支,以继续开发和支持开源数据库系统。MariaDB逐渐获得了广泛的认可,并成为许多Linux发行版的默认数据库。

持续发展与现代应用

  • 最新版本:截至当前时间(2024年9月),MySQL已经迭代到了多个版本,如MySQL 8.0等,不断引入新特性和改进,如窗口函数、JSON支持、全文搜索和事务数据字典等,使MySQL在大规模和复杂应用中更具竞争力。
  • 广泛应用:MySQL被广泛应用于各种应用程序和网站中,特别是在Web开发中。许多知名的网站和应用,如Facebook、Twitter等,都使用MySQL作为其数据存储后端。

MySQL的发展史展示了其从一个小型数据库系统成长为全球最流行的开源关系型数据库管理系统之一的过程。其开源性质、跨平台支持、高性能和可靠性等特点,使得MySQL成为许多开发者和企业的首选数据库解决方案。

关于 MySQL8.0

MySQL 8.0 是 MySQL 数据库管理系统的一个重要版本,它带来了许多新特性和性能改进,使得 MySQL 在处理现代应用需求时更加高效和强大。

主要新特性和改进

  1. 性能提升

    • MySQL 8.0 的性能相比 MySQL 5.7 有显著提升,特别是在读/写工作负载、IO 密集型工作负载以及高竞争("hot spot"热点竞争问题)工作负载方面。
    • 引入了资源组功能,允许用户将线程映射到 CPU,以针对特定硬件上的特定工作负载进行优化。
  2. NoSQL 支持

    • MySQL 8.0 增强了 NoSQL 存储功能,为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的 ACID 合规性。
  3. 窗口函数(Window Functions)

    • 新增了窗口函数支持,如 ROW_NUMBER()、RANK()、DENSE_RANK() 等,这些函数可以在结果集的一个窗口范围内进行计算,适用于处理时间序列数据、分析排名等复杂查询场景。
  4. JSON 支持

    • 大幅改进了对 JSON 的支持,添加了 JSON_EXTRACT()、JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 等函数,使得在查询中直接操作 JSON 数据变得更加灵活和高效。
  5. 数据字典

    • 引入了全新的原生数据字典,取代了以前的 .frm、.par、.opt 等文件,实现了对元数据的统一管理,提升了数据库性能和可管理性。
  6. 角色管理

    • 加入了角色管理功能,通过为用户分配角色,简化了权限管理,提高了安全性。
  7. 安全性增强

    • 加强了密码策略和用户认证功能,支持新的默认身份验证插件 caching_sha2_password。
    • 提供了 SQL 角色、密码强度、授权等安全特性。
  8. InnoDB 存储引擎优化

    • 对 InnoDB 存储引擎进行了多方面优化,包括 I/O 负载、元数据操作等,提升了数据库的并发性能和可扩展性。
  9. 其他新特性

    • 支持降序索引、不可见索引、公用表表达式(CTE)、正则表达式增强等。
    • 改进了查询优化器,使其能够生成更高效的执行计划。
    • 增强了 GIS 地理信息系统功能,支持空间数据类型、索引和相关函数。

兼容性和迁移

  • MySQL 8.0 支持从 MySQL 5.7 升级到 MySQL 8.0,但仅支持通过 in-place 方式进行升级,并且不支持从 MySQL 8.0 降级到 MySQL 5.7 或更早版本。
  • 在升级之前,建议对数据进行备份,以确保数据的安全性。

应用场景

MySQL 8.0 适用于各种规模的应用场景,包括 Web 应用、数据分析、云计算等。其强大的性能和丰富的功能使得 MySQL 成为许多企业和开发者的首选数据库管理系统。

总结

MySQL 8.0 是一个功能强大、性能卓越的数据库管理系统版本。它带来了许多新特性和性能改进,使得 MySQL 在处理现代应用需求时更加高效和强大。无论是从性能、安全性还是可管理性方面来看,MySQL 8.0 都是一个值得推荐的数据库管理系统版本。

为什么选择 MySQL

选择MySQL作为数据库管理系统的原因有很多,以下是一些主要的原因:

  1. 开源与免费
    MySQL是一个开源的数据库系统,这意味着它的源代码是公开的,并且通常可以免费下载和使用。这对于预算有限的项目或个人开发者来说是一个巨大的优势,因为它降低了成本门槛。

  2. 广泛的社区支持
    由于MySQL的开源性质,它拥有庞大的用户和开发者社区。这个社区提供了丰富的文档、教程、问题解答和扩展工具,帮助用户更好地使用MySQL。此外,社区还持续贡献新的功能和改进,推动MySQL的不断发展。

  3. 高性能与可扩展性
    MySQL经过多年的发展和优化,已经成为一个高性能的数据库系统。它支持大量的并发连接和快速的数据访问,适用于各种规模的应用场景。同时,MySQL还提供了多种存储引擎,如InnoDB、MyISAM等,用户可以根据需要选择合适的存储引擎以优化性能。

  4. 可靠性
    MySQL提供了多种机制来确保数据的完整性和可靠性,包括事务处理、回滚、恢复等。这些机制使得MySQL在处理复杂业务逻辑和保证数据一致性方面具有很高的可靠性。

  5. 灵活性
    MySQL支持多种操作系统和编程语言,具有很好的灵活性。它可以在Linux、Windows、macOS等多种操作系统上运行,并且与PHP、Python、Java等多种编程语言兼容。这使得MySQL可以轻松地集成到各种应用程序中。

  6. 丰富的功能
    MySQL提供了丰富的功能来满足不同场景的需求。除了基本的SQL查询、数据插入、更新和删除外,MySQL还支持存储过程、触发器、视图、全文索引等高级功能。这些功能使得MySQL在处理复杂查询、数据分析和业务逻辑时更加灵活和强大。

  7. 安全性
    MySQL提供了多种安全特性来保护数据免受未授权访问。它支持用户认证、权限管理、数据加密等安全措施,并且可以通过配置来增强系统的安全性。此外,MySQL还不断更新和改进其安全机制以应对新的安全威胁。

  8. 广泛的应用
    MySQL在Web开发、电子商务、数据分析等领域有着广泛的应用。许多知名的网站和应用都使用MySQL作为其数据存储后端,如Facebook、Twitter、YouTube等。这使得MySQL具有很高的市场认可度和可靠性。

综上所述,MySQL因其开源免费、社区支持广泛、高性能可扩展、可靠灵活、功能丰富以及广泛应用等特点而备受青睐。无论是个人开发者、中小企业还是大型企业,MySQL都是一个值得选择的数据库管理系统。

Oracle VS MySQL

Oracle和MySQL都是流行的数据库管理系统,但它们在多个方面存在显著差异。

基本特性与定位

  • Oracle

    • 类型:对象关系数据库管理系统(ORDBMS),基于对象模型存储数据及其方法。
    • 定位:主要面向大企业级用户,提供全面的数据库解决方案,包括高级的数据处理、安全性、高可用性和可伸缩性等功能。
    • 市场份额:根据Gartner的数据,截至2020年,Oracle占据了全球关系型数据库管理系统市场的超过40%的份额。
  • MySQL

    • 类型:开源的关系数据库管理系统(RDBMS),基于关系模型存储数据。
    • 定位:更适合中小型企业和个人开发者,提供基本的数据库功能,且易于使用和管理。
    • 市场份额:虽然具体市场份额低于Oracle,但MySQL在开源数据库市场中占据重要地位。

成本

  • Oracle

    • 是一种商业软件,需要购买许可证并支付维护和支持费用,成本较高。
  • MySQL

    • 社区版是免费的,用户可以自由下载和使用。如果需要高级功能(如多线程复制、查询性能优化等),可能需要购买商业版或相应许可证,但整体成本相对较低。

性能与扩展性

  • Oracle

    • 提供了高效的数据处理能力和强大的并发性能,适用于处理大规模数据和复杂查询。
    • 支持集群数据库配置,如Oracle Real Application Clusters (RAC),提供故障转移和负载均衡。
  • MySQL

    • 经过多年的优化,也具有出色的性能表现,能够处理大量数据和高并发请求。
    • 支持主从复制、分区和集群等技术,以实现数据库的扩展和性能提升。

安全性与数据完整性

  • Oracle

    • 提供了多层的安全控制机制,包括基于角色的访问控制、加密算法、审计和数据备份等。
    • 支持高级的数据完整性约束,确保数据的准确性和一致性。
  • MySQL

    • 提供了用户权限管理、数据加密和审计日志等安全功能,以保护数据的安全。
    • 默认的隔离级别有助于防止并发操作时的数据不一致问题。

易用性与可移植性

  • Oracle

    • 提供了丰富的开发和管理工具,如SQL Developer和Oracle Enterprise Manager,但学习和使用门槛相对较高。
    • 支持跨平台运行,但更偏向于使用自己的技术堆栈和产品集成。
  • MySQL

    • 具有较简单的安装和配置过程,提供了直观的管理工具和命令行接口,易于上手。
    • 可以在多种操作系统上运行,具有很好的可移植性和兼容性。

其他特性

  • Oracle

    • 支持高级的数据处理功能,如存储过程、触发器和视图等。
    • 提供了强大的事务管理,支持ACID属性(原子性、一致性、隔离性和持久性)。
  • MySQL

    • 虽然也支持事务处理,但仅限于InnoDB等存储引擎。
    • 提供了丰富的索引和优化器功能,以提高查询性能。

综上所述,Oracle和MySQL在基本特性、成本、性能、安全性、易用性和可移植性等方面各有优势。选择哪个数据库系统取决于具体的应用场景、预算、性能需求和安全要求等因素。对于大型企业级应用和高性能要求的场景,Oracle可能更为合适;而对于中小型企业和个人开发者来说,MySQL则是一个性价比较高的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1522674.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java-线程的生命周期7大状态

在 Java 中,线程的生命周期可以分为多个状态,这些状态描述了线程从创建到终止的整个过程。Java 线程的生命周期主要包括以下七大状态: 1.新建状态(New) 当一个线程对象被创建但尚未调用 start() 方法时,线…

mysql高级sql

一,查询 1.按关键字排序 1.1用 **ORDER BY** 语句来实现排序: - ORDER BY 语句用于对查询结果进行排序。可以根据一个或多个字段的值进行升序(ASC)或降序(DESC)排序。1.2排序可针对一个或多个字段&#…

终于有人把数据中台讲明白了

在大数据发展的黄金期,几乎所有的高科技企业都在思考一个问题:海量数据作为大多数企业发展不可避免的一个趋势之后,企业该怎么去应用这部分数据资产,会对其商业产生什么影响,如何使数据对企业产生正面的推动而不是成为…

mysql高级知识之集群

一、安装 源码编译MySQL,若需要MySQLtar包可私信我 #创建数据目录 mkdir /data/mysql -p#安装相关依赖 yum install libtirpc-devel-0.2.4-0.16.el7.x86_64.rpm yum install cmake gcc-c++ openssl-devel ncurses-devel.x86_64 libtirpc-devel-1.3.3-8.el9_4.x86_64.rpm rpcgen…

安防视频综合管理系统EasyCVR视频汇聚平台集群部署出现状态不同步的情况是什么原因?

随着视频监控技术的快速发展,各类视频资源的整合、管理与分发成为了安防行业的重要挑战。视频综合管理系统EasyCVR视频汇聚平台通过集群部署,实现了视频资源的高效整合与管理。集群部署不仅能够提升系统的处理能力和稳定性,还能有效避免单点故…

JVM面试(四)类加载器和双亲委派机制

什么是类加载器? 简单来说的话,是用于实现“类加载动作”的加载器 “通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器…

Ollama拉起本地模型以及rag系统部署。

什么是 Ollama ? Ollama 是一个简明易用的本地大模型运行框架。能在本地启动并运行 Llama、qwen、Gemma 及其他大语言模型,没有GPU资源照样可以拉起模型,和LocalAI 比较类似,但是加载模型更容易。 1.安装 安装后运行&#xff0c…

解剖学上合理的分割:通过先验变形显式保持拓扑结构|文献速递--基于深度学习的医学影像病灶分割

Title 题目 Anatomically plausible segmentations: Explicitly preserving topology through prior deformations 解剖学上合理的分割:通过先验变形显式保持拓扑结构 01 文献速递介绍 进行环向应变或壁厚度的计算,这些测量通常用于诊断肥厚性心肌病…

Vue前端路由详解——以Ruoyi框架为案例学习

Vue路由 Vue路由详解_vue 页面路由-CSDN博客 路由模式 Vue 的路由模式:hash 模式和 history 模式的区别_vue路由history和hash的区别-CSDN博客 URL格式: Hash模式:URL中包含#号,用于区分页面部分,实际请求的页面地址…

【深度学习与NLP】——词嵌入Embedding技术

目录 1.词嵌入的作用 2.嵌入矩阵的计算 3.Embedding层的代码实验 词嵌入(Embedding)技术是一种将词汇映射到低维连续向量空间的方法。将离散的单词数据处理成连续且固定长度的向量,使模型可以学习和处理语义信息。 假设需要将["Are&…

【MySQL00】【 杂七杂八】

文章目录 一、前言二、MySQL 文件1. 参数文件2. 日志文件3. 套接字文件4. pid 文件5. 表结构定义文件6. InnoDB 存储引擎文件 二、BTree 索引排序三、InnoDB 关键特性1. 插入缓冲1.1 Insert Buffer 和 Change Buffer1.1 缓冲合并 2. 两次写2. 自适应哈希索引3. 异步IO4. 刷新邻…

关于武汉芯景科技有限公司的A/D转换芯片XJ3021开发指南(兼容MCP3021)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、时序(IIC通信) 四、程序代码 XJ3021.C /** XJ3021.c** Created on: 2024年8月23日* Author: Administrator*/ #include "softiic.h" #include "XJ3021.h" #inc…

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 09部署OSPF

本章的目的是帮助网络工程师确定网络的理想 OSPF 配置。本章将回答以下问题 应何时在数据中使用OSPF ?配置 OSPF 的关键设计原则是什么?OSPFv2 和 OSPFv3 之间有什么区别,应如何使用?如何在路由协议栈中配置 OSPF ?如何在服务器上配置 OSPF,例如为容…

【MySQL08】【死锁】

文章目录 一、前言二、查看事务加锁情况1. 使用 information_schema 数据库中表获取锁信息1.1 INNODB_TRX1.2 INNODB_LOCKS1.3 INNODB_LOCK_WAITS 2. 使用 SHOW ENGIN INNODB STATUS 获取锁信息 三、死锁四、参考内容 一、前言 最近在读《MySQL 是怎样运行的》、《MySQL技术内…

Android之Handler的post方法和sendMessage的区别

目录 post 方法方法特点 sendMessage 方法方法特点 使用场景区别总结 Handler 类在 Android 中用于在不同线程之间传递消息和执行代码。它提供了两种主要的方式来执行任务:通过 post 方法和通过 sendMessage 方法。这两种方法有不同的使用场景和特点。 post 方法 方…

浅谈架构实战

目录 背景 1 架构演变 2 如何实现高层的复用 2 中台产生案例 3 技术架构的核心要点 4 技术架构的高可用案例 背景 业务架构、数据架构、应用架构和技术架构它们是相互关联和相互支持的,共同构成了企业的总体架构,业务架构是源头,然后才…

自动生成对话视频!如何使用Captions的AI视频生成与编辑API工具?

Captions公司最近发布了一套AI驱动的视频生成和编辑API工具,为创作者和开发者提供了一个强大的视频创作生态系统。这个系统包含AI Creator、AI Twin、AI Edit、和AI Translate四大核心功能,每个工具都针对不同的创作需求进行优化。下面我们就一起来详细测…

第九周:机器学习

目录 摘要 Abstract 一、RNN 1、引入 2、RNN的分类 二、LSTM 1、基本结构 2、具体步骤 3、举例说明 4、原理理解 总结 摘要 本周主要围绕RNN进行探讨,从为什么需要这类”循环网络“入手,提到了”slot filling“技术,接着又对R…

AT3340:支持BDS/GPS双模授时板数据手册

AT3340采用ATGM331C-5T31授时模块,是高授时精度的BDS/GPS双模接收机板卡,包含32个跟踪通道,支持GPS和BDS的单系统授时定位和双系统联合授时定位,可以通过上位机命令切换。其中的射频前端芯片和基带芯片全部由杭州中科微独立研发&a…