MySql教程

MySQL介绍与5.7新特性描述

本文主要是介绍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新特性描述的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!