mysql 用户量,MySQL ── 用户数全球排名第一的免费开源关系型数据库

2023-11-02

036a2f62a2e4f27dcfb61dda90402063.png

MySQL 是一种关联数据库,关联数据库会将数据保存在不同表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双 “授权政策”:社区版、商业版。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的卓越性能,搭配 PHP (或 Python)、Nginx (或 Apache) 可组成良好的开发环境。

MySQL 在 2008 年被 Sun 以 10 亿美金所收购。MySQL 创始人 Michael Widenius 不满 Sun 开发团队脚步过慢,愤而离职成立开源数据库联盟,从现有 MySQL 程序代码中,开发出另一延伸分支版本,也就是名为 MariaDB (玛莉亚数据库) 的企业级开源数据库。

与其他大型数据库 (譬如:Oracle、DB2、SQL Server 等) 相比,MySQL 也有它的不足之处;但这丝毫不会减少它受欢迎的程度。

对于一般个人使用者和中小型企业而言,MySQL 提供的功能已绰绰有余;且由于 MySQL 是开放源码的,因此,可大大降低总体拥有成本。Linux 作为操作系统,Apache 和 Nginx 作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python 作为服务器端脚本解释器。由于这 4 个软件都是免费或开放源码的 (FLOSS);因此,以这种方式不用花一分钱(除人工成本外)就可建立一个稳定、免费的网站系统,被业界称为 “LAMP“ 或 “LNMP” 组合。

e15e5ebe4f3af850102493c0f44be452.png系统特性

01、以 C/C++ 编写,并使用了多种编译器进行测试,保证源代码的可移植性。

04、支持多线程,可充分利用 CPU 资源。

05、优化的 SQL 查询算法,可有效提高查询速度。

06、既可作为一个单独应用程序应用在客户端服务器网络环境中,也可作为一个库而嵌入到其他软件中。

07、提供了多语言支持,常见编码 (譬如:中文 GB 2312、BIG5、日文 Shift_JIS 等) 都可用作数据表名和数据列名。

08、提供了TCP/IP、ODBC 和 JDBC 等多数据库连接途径。

09、提供用于管理、检查、优化数据库操作的管理工具。

10、支持大型数据库。可以处理拥有上千万条记录的大型数据库。

11、支持多种存储引擎。

12、MySQL 是开源的,所以无需支付额外费用。

13、MySQL 使用标准的 SQL 数据语言形式。

14、MySQL  对 PHP 有很好的支持,PHP 是目前最流行的 Web 开发语言。

15、Mysql 是可以定制的,采用 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。

16、在线 DDL 更改功能,数据架构支持动态应用程序和开发人员灵活性。

17、复制全局事务标识,可支持自我修复式集群。

18、复制无崩溃从机,可提高可用性。

19、复制多线程从机,可提高性能。

存储引擎

01、MyISAM

MySQL 5.0 之前的默认数据库引擎,最常用。拥有较高的插入、查询速度,但不支持事务。

02、InnoDB

事务型数据库的首选引擎。支持 ACID 事务、支持行级锁定。MySQL 5. 5 起成为默认数据库引擎。

03、BDB

源自 Berkeley DB,事务型数据库的另一种选择。支持COMMIT 和 ROLLBACK 等其他事务特性。

04、Memory

所有数据置于内存的存储引擎,拥有极高的插入、更新、查询效率。但是会占用和数据量成正比的内存空间。且内容会在 MySQL 重启动时丢失。

05、Merge

将一定数量的 MyISAM 表联合形成一个整体,在超大规模数据存储时会很有用。

06、Archive

非常适合存储大量且独立、作为历史记录的数据。因为它们不经常被读取。Archive 拥有高效的插入速度,但其对查询的支持相对较差。

07、Federated

将不同 MySQL 服务器联接起来,逻辑上组成一个完整数据库。非常适合分布式应用。

08、Cluster/NDB

高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大、安全、性能要求高的应用。

09、CSV

逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个 .CSV 文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV 存储引擎不支持索引。

10、BlackHole

黑洞引擎,写入的任何数据都会消失。一般用于记录 binlog 做复制的中继。

11、EXAMPLE

EXAMPLE 存储引擎是一个不做任何事情的存根引擎。它的目的是作为 MySQL 源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是开发者。EXAMPLE 存储引擎不支持索引。

此外,MySQL 的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。

架构

1、 单点(Single)

适合小规模应用。

适合中小规模应用。

3、 集群(Cluster)

适合大规模应用。

c750193ef1e3d47fe656bb357dd81be2.png管理工具

1、 phpMyAdmin

phpMyAdmin 是由 php 写成的 MySQL 资料库系统管理程序。管理者可用 Web 界面管理 MySQL 资料库。

2、 phpMyBackupPro

也是由 PHP 写成的,可以透过 Web 界面创建和管理数据库。它可以创建伪 cronjobs,可以用来自动在某个时间或周期备份 MySQL 数据库。

3、 Navicat

4、 EMS MySQL Manager

一款高性能、带图形界面的 MySQL 数据库服务器系统管理、开发工具。它提供了大量工具以满足富有经验的用户所有要求。

5、 MySQL-Front

一款小巧的  MySQL 管理应用程序。支持多文档界面、语法突出、拖拽方式管理数据库和表格。

授权问题

MySQL 遵守的不只是 GPL 协议,而是双授权模式 (dual license)。即:开源项目使用 MySQL,需要遵守 GPL 协议;非开源项目使用 (即软件不打算开放源代码)  MySQL,且该软件会用来销售,则需要向 MySQL 支付一定的 License 费用。

文件手册 bug

在MySQL 5.5.31 版中有人发现 Oracle 取消了其中的 GPL 协议,造成了一定不安。有开发者在 MySQL 程序 “臭虫网站” 上举报这项授权错误问题。随即,MySQL 工程服务总监 Yngve Svendsen 在网站上坦言:这的确是一个文件臭虫;因为 man 手册程序重新编译时套用了错误的授权内容。不过仍然有人认为:Oracle 取消开源授权,改用商业授权的 “这一天迟早是要到来的”,并寻求其他代替方案。

替代方案

随着 MySQL 被 Oracle 收购后,MySQL 的用户和开发者开始质疑开源数据库的命运,与此同时他们开始寻找替代品。

有文章写到了放弃 MySQL 的 5 大理由:

1、MySQL 不如其它关系型数据库管理系统那样成熟;

2、MySQL 是开源的...但只有近似而已;

3、MySQL 的性能无法与竞争对手相提并论;

4、MySQL 是 Oracle 所有的,而不是社区驱动的;

5、越来越多的强劲对手;

MariaDB

从 MySQL 转向 MariaDB 的代表厂家,包括:谷歌(2013 年 9 月)、Red Hat(2013 年 6 月)、维基百科(2013 年 4 月)

MySQL 在 2008 年被 Sun 以 10 亿美金收购后,MySQL 创始人 Michael Widenius 则不满 Sun 开发团队脚步过慢,愤而离职成立开源数据库联盟。另从现有 MySQL 程序代码中,开发出另一个延伸分支版本,也就是名为  MariaDB “玛莉亚数据库” 的企业级开源数据库。

玛莉亚数据库如同 MySQL 的影子版本,玛莉亚数据库是 MySQL 的一个分支版本(branch),而不是衍生版本(folk),提供的功能可和 MySQL 完全兼容。

9d3ecb6b2b750feb06e8e212e34f1ee5.png

PostgreSQL

从 MySQL 转向 PostgreSQL 的代表厂家:苹果(2011年)

PostgreSQL 是一个自由的对象-关系数据库服务器 (数据库管理系统)。PostgreSQL 支持大部分 SQL 标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展。譬如:通过增加新数据类型、函数、操作符、聚集函数、索引方法、过程语言。且由于许可的灵活性,任何人都能以任何目的免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。

PostgreSQL 也受 NoSQL 思想的启发,希望能够在今后可以给使用者更多可定制可调节的功能(不是说这个成熟的关系性数据库系统要向 NoSQL 转变)。

NoSQL

NoSQ (NoSQL = Not Only SQL ) 意即 “不仅仅是 SQL”,它是一项全新的数据库革命性运动。NoSQL 指的是非关系型数据库。随着互联网 web 2.0 网站的兴起,传统的关系数据库在应付 web 2.0 网站,特别是超大规模和高并发的 SNS 类型的 web 2.0 纯动态网站已经显得力不从心。暴露了很多难以克服的问题;而非关系型数据库,则由于其本身的特点得到了非常迅速的发展。

Oracle 免费版版权声明:

本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 用户量,MySQL ── 用户数全球排名第一的免费开源关系型数据库 的相关文章

  • tensorflow教程_TensorFlow教程

    tensorflow教程 TensorFlow教程 TensorFlow Tutorial PDF Version Quick Guide Resources Job Search Discussion PDF版本 快速指南 资源资源 求职
  • nginx配置中root和alias的区别

    例 访问http 127 0 0 1 download 这个目录时候让他去 opt app code这个目录找 方法一 使用root关键字 location root usr share nginx location download gz
  • 水平集分割

    基于距离正则的水平集分割MATLAB代码 无需初始化 This Matlab code demonstrates an edge based active contour model as an application of the Dis
  • 深入理解Objective-C的Block

    最近时间少 也变得懒了 好久没在这里写文章了 眼看就到8月末了 还是整理一篇酝酿已久的吧 之前的文章中整理过用ObjectiveC开发中常用到的Block代码块 其中也提到了一个和block使用不当的crash例子 接着这个问题 本篇文章将
  • Ubuntu 11.10编译Android 4.0.1源码错误

    Android 4 0 1下载到自己的Ubuntu 11 10 64位 系统里 把整个编译环境都配置好了 参考 http www linuxidc net thread 2736 1 1 html 编译时还是出现了如下的错误提示
  • HTML5 页面布局【结合案例】

    新布局的意义 语义化 HTML5 可以让很多更语义化的结构化代码标签代替大量无意义的 div 标签 1 这种语义化的特性提升了网页的质量和语义 2 减少了以前用于CSS 调用的class 和 id 属性 对搜索引擎的友好 新的结构标签带来的
  • su root 与 su - root的区别

    su root 与 su root的区别 su 默认切到 root su 与su 的区别 su 是不改变当前变量 su 是切换到用户的变量 su只能获得root的执行权限 不能获得环境变量 而su 是切换到root并获得root的环境变量及
  • (Java课设)学生成绩管理系统(IDEA+SSM+Layuimini)

    一 系统介绍 1 开发环境 2 技术概要 3 设计概要 4 功能模块设计 二 系统展示 三 部分代码 Student java studentDao接口文件 StudentService java StudentController jav
  • 如何使用VisualVM进行性能分析本地java项目和远程java项目

    这里是weihubeats 觉得文章不错可以关注公众号小奏技术 文章首发 拒绝营销号 拒绝标题党 背景 在有时候我们需要分析java应用的一些内存 gc等情况进行性能分析 我们往往需要一些性能分析利器 而VisualVM算是其中一个 今天我
  • RTL8189ES/ETV/FTV系列模块定频软件操作手册

    使用说明 1 安装串口驱动 SecureCRT串口工具 2 右键打开我的电脑 选择属性 打开设备管理器 如下图示找到COM口 3 打开串口工具 按下图设置 4 打开机器电源 串口工具中会出现字符运行 停止后按ENTER出现下图 5 输入 号
  • Docker Compose的介绍及安装

    一 compose介绍 Compose是一个用来定义和运行复杂应用的Docker工具 一个使用Docker容器的应用 通常由多个容器组成 使用Docker Compose不再需要使用shell脚本来启动容器 Compose 通过一个配置文件
  • DIY简单的RTOS(二)任务切换

    从系统的角度看 任务是竞争系统资源的最小运行单元 任务可以使用或等待CPU 使用内存空间等系统资源 并独立于其它任务运行 项目地址 任务控制块 在其他RTOS中 任务一般是由 任务堆栈 任务控制块和任务函数三部分组成 任务堆栈 上下文切换的
  • 计算机技术为我们带来的影响,计算机技术对社会发展的影响探析

    摘 要 随着社会科学技术和经济的迅速发展 计算机技术也越来越完善 对人类生活的影响也越来越显著 计算机的应用领域很大 几乎可以被用在人们生活的方方面面 无论是学习 工作 还是生活 娱乐 都能看到计算机技术为我们提供的方便之处 正是因为计算机
  • 【论文笔记】BLIP: Bootstrapping Language-Image Pre-training forUnified Vision-Language Understanding and

    1 背景 1 1 之前存在的两个问题 1 模型视角 大多数方法要么采用基于编码器的模型 要么采用编码器 解码器模型 基于编码器的模型不太容易直接转移到文本生成任务 例如 图像字幕 而编码器 解码器模型尚未成功用于图像文本检索任务 2 数据集
  • GoShoppingActivityLearnBinding.java:918: 错误: 参数过多 protected GoShoppingActivityLearnBinding

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 工作中遇到的问题 使用DataBinding 报参数过多 编译失败 异常截图如下 问题解决方法 探索 当时
  • Camera SPI协议讲解

    Camera SPI协议讲解 该文章写于2016年 一直未发表 近期工作中又涉及到了Camera相关的内容 重新温习了下相关知识 决定把这篇文章发表出来 大家共同学习 SPI Serial Peripheral Interface 串行外围
  • ‘cmake' 不是内部或外部命令 也不是可运行的程序 或批处理文

    在 Win7下的命令行模式下 输入cmake相关命令 出现如下错误 cmake 不是内部或外部命令 也不是可运行的程序 或批处理文件 解决方法 在环境变量中添加cmake的文件路径 计算机 右键 属性 高级系统设置 高级 环境变量 系统变量
  • pytorch 多GPU训练总结(DataParallel的使用)

    参考 主页 PyTorch中文文档 前言 博主最近搭建网络的时候 需要调用不同的GPU 实现训练的加速 有时间会出现显卡现存分布不均的情况 有时间有的显卡温度特别高 博客持续更新 一更 2022 09 01 DP模式见本文 使用最少的代码实
  • Go语言上手-实战案例(1)

    猜谜游戏 在这个游戏里面 程序首先会生成一个介于1 100之间的随机整数 然后提示玩家进行猜测 玩家每次输入一个数字 程序就会告诉玩家这个猜测的值是高于还是低于那个秘密的随机数 并且让玩家再次猜测 如果猜对了就告诉玩家胜利并且退出程序 生成

随机推荐

  • 搜索神器Everything的功能技巧(非NTFS文件搜索,FTP/HTTP服务)

    Everything这个搜索神器估计大家都听过 磁盘上的任何文件只要输入后基本就是秒搜 但Everything除了搜索 还自带了一些好用的功能 1 添加非NTFS格式的驱动器索引 默认Everything只会索引查询本地的NTFS格式磁盘
  • Linux云计算命令大全

    云计算命令总结 一 系统命令精讲 二 目录和文件管理 三 安装及管理程序 四 账号管理 五 权限及归属管理 六 磁盘管理 七 文件系统与LVM 八 服务器RAID及配置实战 九 引导过程与服务控制 十 进程和计划任务管理 十一 系统安全及应
  • 【linux】nginx: [emerg] the “ssl“ parameter requires ngx_http_ssl_module

    1 概述 我使用 Linux centos8 安装nginx详细步骤 这个安装了一个nginx 然后启动如下 root zdh2 nginx 1 18 0 sudo usr local nginx sbin nginx c usr
  • class与prototype

    创建实例对象 ES5中常用的构造函数模式 function Person name this name name this getName function return this name ES6 通过class定义类 class Per
  • selenium处理登陆爬虫(维持登陆状态请求页面)

    selenium在处理需要登陆的时候 需要修改浏览器请求头参数cookie或token 在请求需要登陆的页面时 添加参数 跳过登陆 直接获取登陆后的内容 直接在driver对象内添加cookie参数绕开登陆 处理思路 浏览器先登陆 请求同一
  • umi如何实现鉴权

    什么是jwt鉴权 JWT JSON Web Token 本质就是一个字符串书写规范 作用是用来在用户和服务器之间传递安全可靠的信息 在目前前后端分离的开发过程中 使用token鉴权机制用于身份验证是最常见的方案 流程如下 服务器当验证用户账
  • 2.查询分离:表数据量大读写缓慢如何优化?

    查询分离 表数据量大读写缓慢如何优化 01 讲中我们提到过 冷热分离解决方案的性价比高 但它并不是一个最优的方案 仍然存在诸多不足 比如 查询冷数据慢 业务无法再修改冷数据 冷数据多到一定程度系统依旧扛不住 我们如果想把这些问题一一解决掉
  • 如何设置电脑永不熄屏

    1 win q调出搜索框 输入系统 点击系统 2 电源和睡眠 两个选项改为从不 如果是虚拟机 设置永不熄屏的方法 设置
  • 猿创征文

    文章目录 1 PolarDB X是什么 2 PolarDB X架构 3 PolarDB X架构优势 4 PolarDB X核心特性 5 PolarDB X部署 5 1 通过PXD部署集群 5 2 通过 K8S 部署 5 3 通过编译安装 1
  • 【Mybatis-puls 】返回map下划线自动转成驼峰

    文章目录 问题描述 1 yml配置解决方案 错误分析 解决方案 转换器代码 ConfigurationPropertiesBinding的作用 2 通过Java配置bean解决 觉得第一种麻烦的直接用第二种 问题描述 VO实体类自动转换驼峰
  • 使用plsql工具查看oracle中的blob字段的可视化值

    SELECT utl raw cast to varchar2 dbms lob substr t detailsql from Voucher t
  • 每天一个设计模式——装饰模式(C++实现)

    设计模式的代码十分难写的 要充分的体现可复用性 网上有着大量关于设计模式的代码 其中很多的代码违背了很多设计原则 比如依赖倒置原则 开放封闭原则 需要我们明辨是非 设计模式的原则大于使用哪个设计模式 类的组合关系也大于类的继承 通过不断的写
  • ECCV 2022

    作者 机器之心编辑部 来源 机器之心 如何将现有的图像 文本多模态大模型 例如 OpenAI CLIP 用于视频内容理解 是一个非常实用且具有前景的研究课题 它不仅可以充分挖掘图像大模型的潜力 还可以为视频大模型的设计和研究铺平道路 在视频
  • 年轻人还记得KCP吗?什么是KCP,怎么使用呢!!!

    一 什么是KCP KCP是一种网络传输协议 A Fast and Reliable ARQ Protocol 可以视它为TCP的代替品 但是它运行于用户空间 它不管底层的发送与接收 只是个纯算法实现可靠传输 它的特点是牺牲带宽来降低延迟 因
  • C51单片机学习笔记(二)——花样流水灯的实现

    C51单片机学习笔记 二 花样流水灯的实现 文章目录 C51单片机学习笔记 二 花样流水灯的实现 1 单片机引脚 晶振 复位的作用 2 流水灯原理图 3 单片机的周期 4 延时函数的编写 5 使用 位操作 控制流水灯 6 使用字节控制 并行
  • lenovo联想笔记本ThinkBook 14 Gen5+ IRH(21HW)原装Win11系统镜像原厂OEM恢复出厂状态

    LENOVO联想笔记本电脑 ThinkBook 14 Gen5 IRH 21HW 原厂Windows11原装OEM系统 恢复出厂时状态系统 系统自带所有驱动 出厂主题壁纸LOGO Office办公软件 联想电脑管家等预装程序 所需要工具 1
  • java客户端作为kafka消费者测试

    README 本文主要对 java客户端作为kafka 消费者进行测试 生产者由 kafka客户端扮演 1 普通消费者 设置消费者组 重置消费者的offset 即每次都从最头开始消费 默认仅保持7天内数据 类似于 命令行 from begi
  • 【node.js】Node.js下载安装(在vscode中使用)01

    博 主 初映CY的前说 个人信条 想要变成得到 中间还有做到 本文核心 Node js的下载安装操作 目录 一 node介绍 二 node js下载安装 一 node介绍 Node js是一个Javascript运行环境 runtime 实
  • Java句柄与指针

    java中的句柄分为两种 对象句柄 jvm中对象访问句柄 一 对象句柄 句柄 一个唯一的整数 作为对象的身份id 区分不同的对象 和同类中的不同实例 程序可以通过句柄访问对象的部分信息 句柄不代表对象的内存地址 在Java中的任何东西都可以
  • mysql 用户量,MySQL ── 用户数全球排名第一的免费开源关系型数据库

    MySQL 是一种关联数据库 关联数据库会将数据保存在不同表中 而不是将所有数据放在一个大仓库内 这样就增加了速度并提高了灵活性 MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言 MySQL 软件采用了双 授权政策 社区