MySQL 数据库简介

数据库是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。是按照数据结构来组织、存储和管理数据的仓库。目前常用的数据库主要分为开源 MySQL 数据库(包括官方版 MySQL、Percona MySQL MariDB)和商业版数据库 ( 包括 SQL Server、Oracle、DB2 )。

例如一个学校全部学生学籍信息、选课情况、学分统计、考试成绩查询都是利用数据库对学校相关数据进行管理和存储的,而数据库则是配置在学校机房服务器的,利用数据库技术可以对这些数据进行管理,以便于教学工作高效、有序的开展。

而数据库又按照是否采用关系模型划分为两种:

  • 关系型数据库
  • 非关系型数据库

关系型数据库,是指采用了关系模型来组织数据的数据库,从语言功能层面来讲,一般是指用 SQL 语言来进行操作管理的关系型数据库。常用的关系型数据库有 MySQL、Oracle、SQLServer、PostGreSQL。

NoSQL 通常指的是 non-relational ,也可以理解为 Not Only SQL,泛指非关系型数据库。常见的非关系型数据库有 MongDB、HBase、Redis。

NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有 NoSQL 对海量数据的存储管理能力,还保持了传统数据库支持 ACID 和 SQL 等特性。常见的 NewSQL 有 Google Spanner/F1、阿里 OceanBase、腾讯 TDSQL、TiDB、Cockroach。

  • 1979 年,MySQL 的历史最早可以追溯到 1979 年,有一个人叫 Monty Widenius 在一个名为 TcX 的小公司打工并用 BASIC 设计了一个报表工具,可以在 4M 主频和 16KB 内存的计算机上运行。过了不久,又将此工具使用 C 语言重写,移植到 Unix 平台,当时,它只是一个很底层的面向报表的存储引擎;
  • 1996 年,MySQL 1.0 发布,只面向一小拨人,相当于内部发布。到了 96 年 10 月,MySQL 3.11.1 发布了;
  • 1999 – 2000 年,有一家公司在瑞典成立了,叫 MySQL AB (AB 是瑞典语“股份公司”的意思)。 雇了几个人,与 Sleepycat 合作,开发出了 Berkeley DB 引擎, 因为 BDB 支持事务处理,所以,MySQL 从此开始支持事务处理了;
  • 2000 年 4 月,MySQL 对旧的存储引擎进行了整理,命名为 MyISAM。同时,2001 年,Heikiki Tuuri 向 MySQL 提出建议,希望能集成他们的存储引擎 InnoDB ,这个引擎同样支持事务处理,还支持行级锁;
  • 2004 年 10 月,发布了经典的 4.1 版本。 2005 年 10 月,有发布了里程碑的一个版本,MySQL 5.0. 在5.0 中加入了游标,存储过程,触发器,视图和事务的支持。在 5.0 之后的版本里,MySQL 明确地表现出迈向高性能数据库的发展步伐;
  • 2011 年 4 月,MySQL 5.6 发布,作为被 Oracle 收购后,第一个正式发布并做了大量变更的版本(5.5版本主要是对社区开发的功能的集成),对复制模式,优化器等做了大量的变更,其中最重要的主从 GTID 复制模式,大大降低了 MySQL 高可用操作的复杂性;
  • 2016 年 9 月,Oracle 决定跳过 MySQL 5.x 命名系列,并抛弃之前的 MySQL 6,7 两个分支(6,7 是两个从来没有对外发布的两个分支),直接进入 MySQL 8 版本命名,自此正式进入 MySQL 8.0 时代。
  • 运行速度快:MySQL 体积小,命令执行的速度快;
  • 使用成本低:MySQL 是开源的,且提供免费版本,对大多数用户来说大大降低了使用成本;
  • 使用容易:与其他大型数据库的设置和管理相比,其复杂程度较低,易于使用;
  • 可移植性强:MySQL 能够运行与多种系统平台上,如 Windouws,Linux,Unix 等;
  • 适用更多用户:MySQL 支持最常用的数据管理功能,适用于中小型企业甚至大型网站应用。
  • MySQL 最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用 mysqladmin 来重读用户权限时才发生改变;
  • MySQL 没有一种存储过程(Stored ProcedureStored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制;
  • MySQL不支持热备份;
  • MySQL 的另一个主要的缺陷之一是缺乏标准的 RI(Referential Integrity-RI)机制;Rl 限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿;
  • MySQL 的价格随平台和安装方式变化。Linux 的 MySQL 如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方安装则必须付许可费。Unix 或 Linux 自行安装是免费的,Unix 或 Linux 第三方安装则需花费 200 美元。
  • 开放性:Oracle 能在大部分主流平台上运行(包括 Windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持;
  • 安全性:获得最高认证级别的 ISO 标准认证;
  • Oracle 性能高:保持开放平台下 TPC-D 和 TPC-C 世界记录;
  • 客户端支持及应用模式:Oracle 多层次网络计算支持多种工业标准用 ODBC、JDBC、OCI 等网络客户连接;
  • 使用风险:Oracle 长时间开发经验完全向下兼容得广泛应用地风险低。
  • 对硬件的要求很高;
  • 价格比较昂贵;
  • 管理维护麻烦一些;
  • 操作比较复杂,需要技术含量较高。
  • 易用性:适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等;
  • 数据管理与分析带来了灵活性:允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用 Web 带来的机会非常重要;
  • 完备的数据库和数据分析包:SQLServer 为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门;
  • 基准测试可伸缩性和速度奖的记录保持者:SQLServer 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在 Internet 上和防火墙外进行查询的能力;
  • 伸缩性并行性:SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限。
  • 安全性:没有获得任何安全证书;
  • 性能 :SQL Server 多用户时性能佳 ;
  • 客户端支持及应用模式: 客户端支持及应用模式。只支持 C/S 模式,SQL Server C/S 结构只支持 Windows 客户用 ADO、DAO、OLEDB、ODBC连接;
  • 使用风险:SQL server 完全重写代码经历了长期测试断延迟许多功能需要时间来证明并十分兼容。

我们分别在百度指数中查询 MySQL,Oracle,和 SQLSever 这三种关系型数据库的近半年的平均指数,可以看到 MySQL 数据库已经远超同济!

MySQL 分为官方版 MysqlMariaDB 社区版Percona 企业版,其中官方原版高负载性能一般,兼容性好,MariaDB 继续开源,高负载性能较好,兼容性一般。如图对比, Percona 企业版高负载性能最好,兼容性好。

Percona 版的 MySQL 是 Percona 公司对原版 MySQL 进行性能优化之后再发布的版本,其性能比官方原版好,但是 Percona 版的 MySQL 发布一般要晚于官方原版 MySQL 几个月。在企业生产环境中,一般推荐使用 Percona 版的 MySQL,对于新手而言,本套教程中则使用 MySQL 官方目前最新版本 MySQL8.0。

随着互联网技术迅猛的发展,“LNMPR” 一词被越来越多的人熟悉,其中 “L”、“N”、“M”、“P”、“R\”分别代表 “Linux”、“Nginx”、“MySQL”、PHP”、“Redis”,而 LNMPR 是后端开发工程师必备技能,学习 LNMPR 相关技术也是各大后端开发工程师提升自己竞争力的有效途径,而 MySQL 作为各大互联网企业重要的数据存储、管理技术,MySQL 数据库工程师的需求也越来越急迫,特别是对有经验的优秀人才需求量巨大。

学习本套教程之前您需要先了解以下几点:

  • 了解一些基础的 Linux 命令;
  • 需要安装数据库连接操作工具,如 Navicat。

mysql从始至终,性能及应用场景一文全知

分享互联网前沿知识,如果您有兴趣,那留下一个关注吧,支持一下,谢谢各位大佬!

MySQL是一个开源的关系型数据库管理系统,它的起源可以追溯到1995年。MySQL的创始人是Michael Widenius和David Axmark,这两位前微软员工在芬兰的哥本哈根创建了MySQL AB公司。

MySQL的发展始于一个Unix下的mSQL数据库系统,它是一个小型的、快速的数据库,用于支持网站开发。随着网络的发展,Michael和David决定开发一个更强大、更灵活的数据库系统,于是MySQL诞生了。

小结:总的来说,MySQL的起源可以追溯到20世纪90年代初,它是由两位对数据库有着浓厚兴趣的前微软员工创建的。随着时间的推移,MySQL逐渐成长为一个强大、稳定的数据库系统,并在全球范围内享有极高的声誉。

MySQL在实际应用开发中被广泛使用,主要用于存储和管理数据。具体的,MySQL可以用于以下方面:

网站开发:MySQL是网站开发的重要组成部分,它可以存储网站的用户数据、内容数据等。

电子商务:MySQL可以用于存储电子商务网站的订单数据、、产品数据等。

企业应用:MySQL可以用于存储企业的员工数据、、财务数据等。

分析和报告:MySQL可以配合其他工具,如数据仓库工具和商业智能工具,进行大规模数据分析和报告。

其他:MySQL还可以用于存储其他类型的数据,如学校成绩、医院病历、天气数据等。

小结:在开发中,MySQL可以通过语言驱动程序(如PHP、Java、C++等)进行数据库访问,并可以通过各种工具(如MySQL Workbench、phpMyAdmin等)管理和维护数据库。此外,MySQL还支持多种数据库引擎,可以根据不同的数据存储需求进行选择。

MySQL在性能方面表现良好,并具有以下几个特点:

高效的查询引擎:MySQL通过使用索引、优化查询路径和缓存技术等手段,实现了高效的查询。

支持高并发:MySQL支持多线程并发访问,可以同时处理多个客户端请求,从而提高整体的性能。

支持分布式环境:MySQL可以在分布式环境下运行,支持数据分布存储和负载平衡,从而提高整体性能。

可扩展性:MySQL支持分布式环境和数据水平扩展,可以随着数据量增加而扩展硬件资源,从而提高整体性能。

然而,尽管MySQL具有良好的性能,但在实际使用中仍然有一些需要注意的点:

数据库设计:数据库设计对MySQL性能有很大影响,因此需要根据业务需求进行合理的数据库设计。

索引:索引是MySQL性能的关键因素之一,因此需要合理使用索引。

缓存:MySQL可以使用缓存技术来提高性能,因此需要合理使用缓存。

MySQL支持多种数据库引擎,不同的引擎适用于不同的应用场景,主要包括:

MyISAM:MyISAM是MySQL最早推出的引擎,支持快速的全文索引,并且支持稳定的读写,但不支持事务。

InnoDB:InnoDB是MySQL的默认引擎,支持事务、外键约束、缓存技术等,比MyISAM更适合应用于大型复杂的数据库系统。

Memory:Memory引擎基于内存存储,支持高速的数据读写,适用于数据量较小的场景。

Archive:Archive引擎提供了低成本的数据归档功能,适用于存储大量不需要频繁查询的历史数据。

CSV:CSV引擎支持导入导出CSV格式的数据,适用于与其他系统进行数据交换。

Federated:Federated引擎支持在不同MySQL数据库服务器之间进行数据共享,适用于分布式环境。

NDB Cluster:NDB Cluster引擎支持高可用的分布式数据库系统,适用于大型数据库系统的高可用性需求。

选择合适的MySQL引擎取决于您的具体需求。下面是一些选择MySQL引擎的建议:

数据量:如果数据量很大,建议使用InnoDB引擎,因为它支持事务和外键约束,并且性能较好。

读写比例:如果读写比例偏向读操作,建议使用MyISAM引擎,因为它支持全文索引,搜索速度较快。如果读写比例偏向写操作,建议使用InnoDB引擎,因为它支持事务和提供较好的写性能。

历史数据:如果需要存储大量不需要频繁查询的历史数据,建议使用Archive引擎。

内存存储:如果数据量较小,建议使用Memory引擎,因为它基于内存存储,读写速度较快。

分布式环境:如果需要分布式存储,建议使用Federated引擎或NDB Cluster引擎。

数据交换:如果需要与其他系统进行数据交换,建议使用CSV引擎。

这只是选择MySQL引擎的一般建议,您可能需要根据具体情况进行适当的调整。

MySQL有如下的优点:

1、免费:MySQL是一款免费的开源数据库管理系统,对于开发者和企业来说,可以节省很多费用。

2、易于使用:MySQL拥有简单易懂的语法,同时也提供了许多工具,如MySQL Workbench等,使得数据库管理更加方便。

3、功能强大:MySQL提供了丰富的功能,如数据备份和恢复,事务处理,存储过程,触发器等。

4、高性能:MySQL具有高性能和高效率,特别是在读写操作方面,可以处理大量的数据请求。

5、兼容性高:MySQL支持多种平台和语言,如Linux、Windows、Mac OS、PHP、Java等。

MySQL同样也有一些缺点:

1、可靠性问题:MySQL有时可能出现数据丢失或损坏的问题。

2、可扩展性问题:MySQL的扩展性有限,在处理大量数据时可能出现性能问题。

3、存储限制:MySQL的数据存储限制较小,对于需要存储大量数据的场景来说不够实用。

4、缺乏先进的功能:相比其他数据库管理系统,MySQL缺乏一些先进的功能。

MySQL的安装说明非常详细,具体步骤如下:

1、下载MySQL:从MySQL官方网站下载安装程序并安装。

2、安装MySQL:运行MySQL安装程序,按照说明操作,完成安装。

3、配置MySQL:在安装后的配置页面中,配置MySQL的管理员账户和密码。

4、启动MySQL:在配置完成后,启动MySQL服务,以开始使用MySQL。

5、登录MySQL:使用命令行或者MySQL Workbench登录MySQL,操作数据库。

注意:安装过程可能因平台、版本、配置等不同而有所差异,建议在安装前仔细阅读MySQL官方文档,以保证安装正确。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。