百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

MySQL 数据库简介

off999 2025-02-15 00:44 11 浏览 0 评论

1. 数据库的概念

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

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

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

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

1.1 关系型数据(SQL)

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

1.2 非关系型数据库(NoSQL)

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

1.3 新型数据库(NewSQL)

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

2. MySQL 发展历史

  • 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 时代。

3. MySQL 与同类型数据库对比

3.1 MySQL优缺点

MySQL优点:

  • 运行速度快:MySQL 体积小,命令执行的速度快;
  • 使用成本低:MySQL 是开源的,且提供免费版本,对大多数用户来说大大降低了使用成本;
  • 使用容易:与其他大型数据库的设置和管理相比,其复杂程度较低,易于使用;
  • 可移植性强:MySQL 能够运行与多种系统平台上,如 Windouws,Linux,Unix 等;
  • 适用更多用户:MySQL 支持最常用的数据管理功能,适用于中小型企业甚至大型网站应用。

MySQL 缺点:

  • MySQL 最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用 mysqladmin 来重读用户权限时才发生改变;
  • MySQL 没有一种存储过程(Stored ProcedureStored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制;
  • MySQL不支持热备份;
  • MySQL 的另一个主要的缺陷之一是缺乏标准的 RI(Referential Integrity-RI)机制;Rl 限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿;
  • MySQL 的价格随平台和安装方式变化。Linux 的 MySQL 如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方安装则必须付许可费。Unix 或 Linux 自行安装是免费的,Unix 或 Linux 第三方安装则需花费 200 美元。

3.2 Oracle 优缺点

Orace 优点:

  • 开放性:Oracle 能在大部分主流平台上运行(包括 Windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持;
  • 安全性:获得最高认证级别的 ISO 标准认证;
  • Oracle 性能高:保持开放平台下 TPC-D 和 TPC-C 世界记录;
  • 客户端支持及应用模式:Oracle 多层次网络计算支持多种工业标准用 ODBC、JDBC、OCI 等网络客户连接;
  • 使用风险:Oracle 长时间开发经验完全向下兼容得广泛应用地风险低。

Oracle 缺点:

  • 对硬件的要求很高;
  • 价格比较昂贵;
  • 管理维护麻烦一些;
  • 操作比较复杂,需要技术含量较高。

3.3 SQLServer 优缺点

SQLServer 优点:

  • 易用性:适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等;
  • 数据管理与分析带来了灵活性:允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用 Web 带来的机会非常重要;
  • 完备的数据库和数据分析包:SQLServer 为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门;
  • 基准测试可伸缩性和速度奖的记录保持者:SQLServer 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在 Internet 上和防火墙外进行查询的能力;

SQLServer 缺点:

  • 伸缩性并行性:SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限。
  • 安全性:没有获得任何安全证书;
  • 性能 :SQL Server 多用户时性能佳 ;
  • 客户端支持及应用模式: 客户端支持及应用模式。只支持 C/S 模式,SQL Server C/S 结构只支持 Windows 客户用 ADO、DAO、OLEDB、ODBC连接;
  • 使用风险:SQL server 完全重写代码经历了长期测试断延迟许多功能需要时间来证明并十分兼容。

3.4 MySQL 的市场占比

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

4、MySQL 的版本

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

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

5. 为什么要学习 MySQL?

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

6. 学习基础

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

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

相关推荐

Python进阶教程:如何自定义异常(附电商库存管理案例)

在Python中,你可以使用异常(exceptions)来预期和处理那些干扰程序正常执行流程的错误。Python内置了许多常见的异常,例如ValueError、TypeError和KeyError,但...

Python 中使用try来处理异常的方法

六二,直方大,不习无不利。在学习python中会经常遇到各种异常事件;现归纳一下如何捕捉并处理这些异常;今天来给大家整理一下。一、异常的概念什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,...

python入门-day3:异常处理(异常处理方法及流程python)

异常处理的内容,包括try、except、finally的用法,介绍常见异常类型,最后通过一个练习(处理用户输入的非法数字)帮你把知识点串起来。我会用简单易懂的语言,确保新手也能轻松掌握。Da...

16-Python的异常(python的异常类型及处理)

1-异常介绍1-2-什么是异常异常是程序运行时发生的错误或异常情况,它会中断正常的程序执行流程;Python使用异常处理机制来处理这些运行时错误。1-4-为什么要捕获异常异常会中断程序的执行;1-3-...

Python 异常处理详解(python中异常)

一、什么是异常?核心定义在程序运行过程中,当Python解释器检测到无法继续执行的操作时,会立即创建异常对象并中断当前流程。此时若不处理异常,程序将直接崩溃退出。典型场景与原理用户输入无效数据nu...

掌握这些 Python 异常处理技巧,代码稳如老狗!

在Python中,异常处理不仅可以帮助我们捕获和处理错误,还能让我们更清晰地了解错误发生的背景。1.异常层次结构Python内置了许多异常,我们在编程时可能会经常遇到,例如ZeroDivisi...

python异常处理机制最佳实践(python异常处理总结)

Python异常处理的最佳实践需要兼顾代码健壮性、可读性和性能。以下是经过工程验证的10个核心原则和技巧:一、精准捕获原则避免裸except禁止使用except:或exceptExce...

python之异常处理(python异常处理过程可以概括为三个步骤)

异常语法try:<代码块>except<异常类型>:<代码块>捕获通用异常try:<代码块>exceptExceptionas...

一天学一点,今天学习掌握Python:异常处理与文件操作全攻略

这一笔记记录了我学习python的异常和文件的操作,这也是针对Python异常和文件操作教程的进一步优化建议和注意事项:异常处理优化1.避免过度捕获异常o不要为了捕获异常而捕获异常,应根据实际需求...

新手学Python避坑,学习效率狂飙! 十二、Python 异常处理

异常处理系统分享在Python里,异常指的是程序运行期间出现的错误。当异常发生时,正常的程序流程会被中断,Python会抛出异常对象。为了防止程序因异常而崩溃,你可以使用异常处理机制捕获并处理这...

Python异常处理全攻略:从入门到精通,轻松应对代码“翻车”时刻

喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。引言:异常处理——代码世界的“保险丝”在编程的世界里,错误和异常就像路上的“坑”,稍不留神就会让你的程序“翻车”。而异常处理,就是...

Python异常处理全面指南(python异常处理步骤)

Python异常处理完全指南异常处理是编写健壮程序的关键技术。Python提供了灵活的语法和丰富的内置异常类型,能够有效管理程序运行时的错误。以下是Python异常处理的全面指南:一、异常处理...

进阶突破python——异常处理机制(异常处理用什么语句python)

Python的异常处理机制是其健壮性设计的核心,通过清晰的语法结构和灵活的处理策略实现错误管理。以下从核心语法、异常对象、高级特性和最佳实践四个维度详解:一、核心语法结构Python使用try-...

Python基础编程——详细介绍Python的异常捕获示例代码

这篇文章主要为大家详细介绍了python的异常捕获,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助①捕捉一个异常捕捉一个异常以用0作为除数会得到Ze...

Python学习 -- 异常捕获技巧(python怎么捕获异常)

在编写Python代码时,异常处理是确保程序稳定性的关键。Python提供了灵活的异常捕获机制,包括try...except语句、try...except...else语句和try...except....

取消回复欢迎 发表评论: