MySQL介绍与5.7新特性描述
2021/7/14 19:12:59
本文主要是介绍MySQL介绍与5.7新特性描述,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 1.什么是MySQL
- 2.MySQL版本
- 3.MySQL的优势
- 4.了解MySQL 5.7的新特性
- 5.MySQL工具
- 5.1MySQL命令行实用程序
1.什么是MySQL
MySQL是一个小型关系数据库管理系统,与其他大型数据库管理系统(例如Oracle、DB2、SQL Server等)相比,MySQL规模小、功能有限,但是它体积小、速度快、成本低,且提供的功能对稍微复杂的应用来说已经够用,这些特性使得MySQL成为世界上最受欢迎的开放源代码数据库。
2.MySQL版本
针对不同用户,MySQL分为两个不同的版本。
-
MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持。
-
MySQL Enterprise Server(企业版服务器):它能够以很高性价比为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话技术支持。
提示
MySQL Cluster主要用于架设集群服务器,需要在社区版或企业版的基础上使用。针对不同的操作系统,读者可以在MySQL官方下载页面(http://dev.mysql.com/downloads/)下载相应的安装文件。
3.MySQL的优势
MySQL的主要优势如下:
(1)速度:运行速度快。
(2)价格:MySQL对多数个人来说是免费的。
(3)容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
(4)可移植性:能够工作在众多不同的系统平台上,例如Windows、Linux、UNIX、Mac OS等。
(5)丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等语言的API。
(6)支持查询语言:MySQL可以利用标准SQL语法和支持ODBC(开放式数据库连接)的应用程序。
(7)安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。并且由于MySQL是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。
4.了解MySQL 5.7的新特性
和MySQL 5.6相比,MySQL 5.7的新功能主要包括以下几个方面。
1.性能大幅度提升
MySQL 5.7在所有负载模型上都有显著的性能改进,并创造了新的基准测试纪录。MySQL 5.7在Point Select查询测试中,测试成绩是MySQL 5.6的3倍多。
2.支持JSON
JSON(JavaScript Object Notation)是一种存储信息的格式,可以很好地替代XML。从MySQL 5.7将支持JSON,而在此版本之前,只能通过strings之类的通用形式来存储JSON文件,这样做的缺陷很明显,就是必须要自行确认和解析数据、解决更新中的困难或在执行插入操作时忍受较慢的速度。
在MySQL 5.7中,新增了一种新的数据类型,用来在MySQL的表中存储JSON格式的数据。原生支持JSON数据类型主要有如下好处:
(1)文档校验:只有符合JSON规范的数据段才能被写入类型为JSON的列中,相当于有了自动JSON语法校验。
(2)高效访问:在JSON类型的列中存储JSON文档时,数据不会被视为纯文本进行存储,而是以一种优化后的二进制格式进行存储,以便可以更快速地访问其对象成员和数组元素。
(3)提升性能:通过在JSON类型的列上创建索引,可以提升数据查询性能。
3.Performance Schema
对于任何数据管理系统而言,监控是必要的。MySQL提供的核心监控策略是Performance Schema。Performance Schema在MySQL 5.7中的改进包括大量新加入的监控项、降低占用空间和负载、通过新的SYS Schema机制显著地提升易用性。
在监控方面,Performance Schema提供了如下新功能:
(1)元数据锁(Metadata Locking):任何已经开始的事务将一直持有表的元数据锁直到事务提交。由于开始的事务会持有事务关联的所有表的元数据锁,因此任何DDL操作在前面的事务提交前是不能够执行的。
(2)进度跟踪(Stage Tracking):长时间跟踪操作的进度。
(3)事务:监控服务层和存储引擎层的事务的全部方面。
(4)内存使用:通过统计内存使用的信息,从而了解内存的消耗情况。
(5)预编译语句:通过预编译语句提供聚合统计信息,并且展示服务使用的预编译语句。
4.SYS Schema
MySQL SYS Schema是一个由一系列对象(视图、存储过程、存储方法、表和触发器)组成的数据Schema,主要存储在Performance Schema和INFORMATION_SCHEMA的监测数据资源中。MySQL SYS Schema默认包含在MySQL 5.7中,并提供摘要视图以解决以下问题:
(1)哪些进程占用了数据库的所有资源?
(2)哪些主机对数据库服务器的访问量最大?
(3)数据库实例上的内存都被用到了什么地方?
5.性能和可扩展性
改进InnoDB的可扩展性和临时表的性能,从而实现更快的网络和大数据加载等操作。
6.改进复制以提高可用性的性能
包括多源复制、增强多从线程功能、在线GTIDs和增强的半同步复制。
7.性能模式提供更好的视角
增加了许多新的监控功能,以减少空间和过载,使用新的SYS模式显著提高易用性。
8.提高安全
以安全第一为宗旨,提供了很多新的功能,从而保证数据库的安全。
9.优化
重写了大部分解析器、优化器和成本模型,提高了可维护性、可扩展性和性能。
10.透明的页级别压缩
自MySQL 5.1开始,InnoDB支持表压缩特性。InnoDB页级别的压缩是MySQL5.7的一个新特性,它补充了InnoDB的表级压缩,它们可以在同一个服务实例上并存。用户现在可以选择最适合他们使用场景的压缩方式,甚至基于不同的表选择不同的压缩方式。
对于压缩算法,目前支持Zlib和LZ4。当一个页被写入时,它就被指定的压缩算法压缩。压缩后的数据写到磁盘上,随后“hole punching”机制会在页的末尾处释放空块。如果压缩失败,数据则被原样写入。
InnoDB现在也支持32KB和64KB的页大小设置,这对于页级的压缩来说是一个很好的补充。一般来说,更大的页通常会增加冗余的数据量。MySQL 5.7增加了用户可配置填充因子和页合并抑制的新特性,这样可以让InnoDB更好地使用存储空间。
11.本地分区
在早期版本中,对InnoDB分区的支持依赖于ha_partition处理器,这个处理器可以为每一个分区创建一个新的处理器,当使用很多分区时,这个处理器也相应地浪费了很多资源。
在MySQL 5.7 InnoDB中包含对本地分区的支持,可以使用更少的整体资源。InnoDB的本地分区也为较好地整体分区铺平了道路。这包含并行查询进程、改进分区裁剪、外键支持、全局二级索引和在分区表上的全文本搜索之类的功能。作为这项工作的一部分,也已经从分区处理器类中的特性部分分离出了它自己的分区接口。InnoDB本地分区功能可以明显降低负载,减少多达90%的内存需求。
12.缓存保留
在MySQL 5.7服务器重启时,InnoDB自动保留缓存池中最热的25%的数据。这样的好处是,用户不需要任何预加载或预热数据缓存的工作,也不需要承担MySQL重启带来的性能损失。
5.MySQL工具
MySQL数据库管理系统提供了许多命令行工具,这些工具可以用来管理MySQL服务器、对数据库进行访问控制、管理MySQL用户以及数据库备份和恢复工具等。而且MySQL提供图形化的管理工具,这使得对数据库的操作更加简单。
5.1MySQL命令行实用程序
MySQL服务器端实用工具程序如下。
(1)mysqld: SQL后台程序(MySQL服务器进程)。必须在该程序运行之后,客户端才能通过连接服务器访问数据库。
(2)mysqld_safe:服务器启动脚本。在UNIX和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。
(3)mysql.server:服务器启动脚本。在UNIX中的MySQL分发版包括mysql.server脚本。该脚本用于使用包含为特定级别的、运行启动服务的脚本的、运行目录的系统。它调用mysqld_safe来启动MySQL服务器。
(4)mysql_multi:服务器启动脚本,可以启动或停止系统上安装的多个服务器。
(5)myisamchk:用来描述、检查、优化和维护MyISAM表的实用工具。
(6)mysqlbug: MySQL缺陷报告脚本。它可以用来向MySQL邮件系统发送缺陷报告。
(7)mysql_install_db:该脚本用默认权限创建MySQL授权表。通常只是在系统上首次安装MySQL时执行一次。
MySQL客户端实用工具程序如下。
(1)myisampack:压缩MyISAM表以产生更小的只读表的一个工具。
(2)mysql:交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。
(3)mysqlaccess:检查访问主机名、用户名和数据库组合的权限的脚本。
(4)mysqladmin:执行管理操作的客户程序,例如创建或删除数据库、重载授权表、将表刷新到硬盘上以及重新打开日志文件。mysqladmin还可以用来检索版本、进程以及服务器的状态信息。
(5)mysqlbinlog:从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复。
(6)mysqlcheck:检查、修复、分析以及优化表的表维护客户程序。
(7)mysqldump:将MySQL数据库转储到一个文件(例如SQL语句或tab分隔符文本文件)的客户程序。
(8)mysqlhotcopy:当服务器在运行时,快速备份MyISAM或ISAM表的工具。
(9)mysql import:使用LOAD DATA INFILE将文本文件导入相关表的客户程序。
(10)mysqlshow:显示数据库、表、列以及索引相关信息的客户程序。
(11)perror:显示系统或MySQL错误代码含义的工具。
本文参考:
《MySQL 5.7从入门到精通(视频教学版)(第2版) 》
这篇关于MySQL介绍与5.7新特性描述的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南