1. 了解什么是数据库
数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。数据库包含两层含义:保管数据的“仓库”,以及数据管理的方法和技术。
2. 掌握什么是表、数据类型和主键
2.1 表
在关系数据库中,数据库表示一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成。行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,有相应的描述信息,如数据类型、数据宽度等。
2.2 数据类型
数据类型决定了数据在计算机中的存储格式、代表不同的信息类型。常用的数据类型有整数数据类型、浮点数据类型、精确小数类型、二进制数据类型、日期/时间数据类型、字符串数据类型。
2.3 主键
主键(Primary Key)又称主码,用于唯一的标识表中的每一条记录。
3. 熟悉数据库的技术构成
3.1 数据库系统
数据库:用于存储数据的地方。数据库管理系统:用于管理数据库的软件。数据库应用发程序:为了提供数据库系统的处理能力所使用的管理数据库的软件补充。3.2 SQL 语言
对数据库进行查询和修改操作的语言叫做SQL。SQL的含义是结构化查询语言(Structured Query Language)。
SQL语言包含:
数据定义语言(DDL): DROP、CREATE、ALTER等语句数据操作语言(DML): INSERT、UPDATE、DELETE语句数据查询语言(DQL): SELECT数据控制语言(DCL): GRANT、REVOKE、COMMIT、ROLLBACK等语句。3.3 数据访问接口
ODBCODBC(Open Database Connectivity,开放数据库连接)技术为访问不同的SQL数据库提供了一个共同的接口。JDBCJDBC(Java Data Base Connectivity, Java数据库连接)用于Java应用程序连接数据库的标准方法是一个用于只想SQL语句的JAVA API。ADO.NETADO.NET是微软在.NET框架下开发设计的一组用于和数据源进行交互的面向对象类库。PDOPDO(PHP Data Object)为PHP访问数据库定义了一个轻量级的、一致性的接口,提供了一个数据访问抽象层。4. 熟悉什么是MySQL
MySQL是一个小型关系数据库管理系统,体积小、速度快、成本低。
4.1 客户端/服务器软件
主从式架构(Clinet-Server Model)或客户端/服务器(Clinet/Server)结构(简称C/S结构),是一种网络架构,通常在该网络架构下的软件可分为客户端(Clinet)和服务器(Server)
4.2 MySQL版本
MySQL Community Server(社区版服务器):该版本完全免费,但是官方不提供技术支持。MySQL Enterprise Server(企业版服务器):能够以很高的性价比为企业提供数据仓库应用,支持ACID事务管理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需要付费使用,官方提供电话技术支持。MySQL Cluster 主要用于假设集群服务器,需要在社区报或企业版基础上使用。MySQL的命名机制由3个数字和1个后缀组成,例如:MySQL-8.0.13版本:
第1个数字(8)是主板版本号,描述了文件格式,所有版本8 的发行版都有相同的文件格式第2个数字(0)是发行级别,主板不号和发行级别组合在一起便构成了发现的序列号。第3个数字(13)是在此发行系列的版本号,随每次新发布版本递增,通常选择已经发行的最新版本。在MySQL开发过程中,同时存在多个发布系列,每个发布处在成熟度的不同阶段
MySQL 8.0 是最新开发的稳定(GA)发布系列,是将执行新功能的系列,目前已经可以正常使用。MySQL 8.0 是比较稳定(GA)发布协力。只针对漏洞修复重新发布,没有增加会影响稳定性的新功能。MySQL 5.7 是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布,没有增加会影响该系列的重要功能。4.3 MySQL的优势
速度:允许速度快价格:MySQL对于多数个人来说是免费的容易使用:与其他大型数据库的设置和管理相比,其负责程度较低,易于学习。可移植性:能够工作在众多不同的系统平台上丰富的接口:提供了用于C、C++等各种语言的API支持查询语言:MySQL可以利用标准SQL语法和支持ODBC的应用程序安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。5. 掌握常见的MySQL工具
5.1 MySQL命令行实用程序
MySQL服务器端实用工具程序如下:
mysqld: SQL 后天程序(MySQL服务器进程)mysqld_safe: 服务器启动脚本mysql.server: 服务器启动脚本,该脚本用于使用包含为特定级别的、运行启动服务的脚本、运行目录的系统。它调用 mysqld_safe来启动MySQL服务器。mysql_multi: 服务器启动脚本,可以启动和停止系统上安装的多个服务器。myisamchk: 用于描述、检查、优化和维护 MyISAM 表的实用工具。mysqlbug: MySQL缺陷报告脚本。它可以用来向MySQL邮件系统发送缺陷报告。mysql_install_db: 该脚本用默认取消创建MySQL授权表,通常只是在系统上首次安装MySQL执行一次。MySQL客户端实用工具程序如下:
myisampack: 压缩MyISAM表,以产生更新的只读表的一个工具。mysql: 交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。mysqlaccess: 检查访问主机名、用户名和数据库组合的权限的脚本。mysqladmin: 执行管理操作的客户程序,例如创建或删除数据库、重载授权表、将表刷新到硬盘上以及重新打开日志文件。mysqladmin还可以用来检索版本、进程,以及服务器的状态信息。mysqlbinlog: 从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复。mysqlcheck: 检查、修复、分析以及优化表的表维护客户程序。mysqldump: 将MySQL数据库转储到一个文件(例如SQL语句或tab分隔符文本文件)的客户程序mysqlhostcopy: 当服务器在运行时,快速备份MyISAM或ISAM表的工具。mysqlimport: 使用LOAD DATA INFILE 将文本文件导入相关表的客户程序。mysqlshow: 显示数据库、表、列以及索引相关信息的客户程序。perror: 显示系统或MySQL错误代码含义的工具。5.2 MySQL Workbench
MySQL Workbench是下一代可视化数据库设计软件,为数据库管理员和开发人员提供了一整套可视化数据库操作环境,主要功能有:
数据库设计和模型建立SQL 开发(取代MySQL Query Browser)数据库管理(取代MySQL Administrator)MySQL Workbench 有两个版本:
MySQL Workbench Community Edition(也叫 MySQL Workbench OSS,社区版),是在GPL证书下发布的开源社区版本。MySQL Workbench Standard Edition(也叫MySQL Workbench SE, 商业版),是按年收费的商业版本。MySQL Query Browser 和 MySQL Administrator 是较早的MySQL 数据库中图形化工具。
6. MySQL 8.0的新特性简述
和MySQL 5.7 相比,MySQL 8.0 的新特性主要包括以下几个方面:
数据字典MySQL 8.0 包含一个事务数据字典,用于存储有关数据库对象的信息。之前的版本中,字典数据存储在元数据文件和非事务表中。原子数据定义语句MySQL 8.0支持原子数据定义语言(DDL)语句。原子DLL语句将与DDL操作关联的数据字典更新,存储引擎操作和二进制日志写入组合到单个原子事务中。即使服务器在操作期间暂停,也会提交事务,并将适用的更改保留到数据字典、存储引擎和二进制日志,或者回滚事务。通过在MySQL 8.0中引入MySQL数据字典,可以实现原子DDL。安全和账户管理MySQL 数据库的授权表统一为 InonDB(事务性)表。每个语句都是事务性的,并且对所有创建的用户都是成功或者回滚,发生任何错误都无效。如果成功,就将语句写入二进制日志;如果失败则不屑于,发生回滚并且不进行任何更改。
MySQL 8.0 开始支持角色,权限修改可以通过角色来进行,无需为每个用户单独授权。
MySQL 8.0 开始维护有关密码历史的信息,从而限制了以前密码的重用。
MySQL 8.0 允许账号具有双密码,从而在多服务器系统中无缝地执行分阶段密码更改,无需停机。
资源管理MySQL 现在支持资源组的创建和管理,并允许将服务区内允许的线程分配给特定的资源组。资源组属性可以控制其资源,以启用或限制资源组中线程的资源消耗。数据库管理员可以根据不同的工作负载修改这些属性。
InnoDB增强MySQL 8.0 增强了 InnoDB的功能,主要表现如下:
MySQL8.0 将自增主键的计数器持久化到重做日志中。每次计数器发生改变,都会将其写入重做日志中。如果数据重启,InnoDB会根据重做日志中的信息来初始化计数器的内存值。为了尽量减小对系统性能的影响,计数器写入重做日志时,并不会马上刷新数据库系统。如果索引损坏,InnoDB将索引损坏标志写入重做日志,从而使得损坏标志安全。InnoDB还将内存中损坏标志数据写入每个检查点上的引擎专用系统表中。在恢复期间,InnoDB从两个位置读取损坏标志并将内存表和索引对象标记为损坏之前合并结果。新的动态变量 innodb_deadlock_detect 可用于禁用死锁检测。在高并发系统上,当许多线程等待同一个锁时,死锁检测会导致速度减慢,此时禁用死锁检测可能更有效。字符集支持默认字符集已经更改为 latin1 为 utf8mb4。 该 utf8mb4 字符集有几个新的排序规则,其中包括 utf8mb4_ja_0900_as_cs。
强JSON功能数据类型的支持MySQL 8.0支持将表达式用作数据类型的默认值,包括 BLOB、TEXT、GEOMETRY和JSON数据类型,在以前的版本中是根本不会被分配默认值的。查询的优化MySQL8.0 开始支持不可见索引。优化器根本不使用不可见索引,但会以其他方式正常维护。默认情况下,索引是可见的。通过不可见索引,数据库管理员可以检测索引对查询性能的影响,而不会进行破坏性的更改。MySQL 8.0 开始支持降序索引。DESC 在索引定义中不再被忽略,而且会降序存储索引字段。共同表表达式MySQL现在支持非递归和递归的公用表表达式。 公用表表达式 允许使用命名的临时结果集,通过允许WITH语句之前的子句 SELECT和某些其他语句来实现。
窗口函数统计直方图备份锁新类型的备份锁在联机备份 期间允许DML,同时防止可能导致快照不一致的操作。
7. 了解如何学习MySQL
培训兴趣夯实基础及时学习新知识多实践操作