【MySQL必知必会读书笔记】第二章:MySQL简介

2.1 什么是MySQL

数据库的所有存储、检索、管理和处理实际上是由数据库软件–DBMS(数据库管理系统)完成的。MySQL是一种DBMS,即它是一种数据库软件。

  • 成本–MySQL是开放源代码的,一般可以免费使用
  • 性能–MySQL执行很快(非常快)
  • 可信赖
  • 使用简单

2.1.1 客户机-服务器软件

DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类是为基于客户机-服务器的DBMS。前者用于桌面用途,通常不使用高端或更为关键的应用。

MySQL、Oracle以及Microsoft SQL Server 等数据库是基于客户机-服务器的数据库。客户机-服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。

  • 服务器软件为MySQL DBMS。可以在本地安装的副本上运行,也可以连接到运行在你具有访问权限的远程服务器上的一个副本。
  • 客户机可以是MySQL提供的工具、脚本语言、Web应用开发语言、程序设计语言等。

2.1.2 MySQL 版本

  • 4—InnoDB引擎,增加事务处理、并、改进全文本搜索等支持
  • 4.1—对函数库、子查询、集成帮助等的重要增加。
  • 5—存储过程、触发器、游标、视图

Mysql5.7特性,相比5.5 5.6

MySQL 5.6:初始化数据时需要进到根目录的script目录下

MySQL 5.7:初始化数据时需要进到根目录的bin目录下

已然已经废弃了使用mysql_install_db这个命令进行初始化数据的操作了。使用mysqld --initialize
安全性

  • 用户表mysql.user的plugin字段不允许为空,默认值是mysql_native_password,而不是mysql_old_password,不再支持旧密码格式;
  • 增加密码过期机制,过期后需要修改密码,否则可能会被禁用,或者进入沙箱模式;

  • 提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式。

灵活性

  • MySQL数据库从5.7.8版本开始,也提供了对JSON的支持。

  • 可以混合存储结构化数据和非结构化数据,同时拥有关系型数据库和非关系型数据库的优点

  • 能够提供完整的事务支持

  • generated column是MySQL 5.7引入的新特性,所谓generated column,就是数据库中这一列由其他列计算而得

易用性

  • 在MySQL5.7之前,如果用户输入了错误的SQL语句,按下ctrl+c,虽然能够”结束”SQL语句的运行,但是,也会退出当前会话,MySQL 5.7对这一违反直觉的地方进行了改进,不再退出会话。

  • MySQL 5.7可以explain一个正在运行的SQL,这对于DBA分析运行时间较长的语句将会非常有用。

  • sys schema是MySQL 5.7.7中引入的一个系统库,包含了一系列视图、函数和存储过程, 该项目专注于MySQL的易用性。
    例如:如何查看数据库中的冗余索引;如何获取未使用的索引;如何查看使用全表扫描的SQL语句。

可用性:

  • MySQL5.7通过避免为只读事务分配事务ID,不为只读事务分配回滚段,减少锁竞争等多种方式,优化了只读事务的开销,提高了数据在线设置复制的过滤规则 不再需要重启MySQL,只需要停止SQL thread,修改完成以后,启动SQL thread。

  • 在线修改buffer pool的大小。

  • Online DDL MySQL 5.7支持重命名索引和修改varchar的大小,这两项操作在之前的版本中,都需要重建索引或表。

  • 在线开启GTID,在之前的版本中,由于不支持在线开启GTID,用户如果希望将低版本的数据库升级到支持GTID的数据库版本,需要先关闭数据库,再以GTID模式启动,所以导致升级起来特别麻烦。

性能

  • 临时表的性能改进。

  • 临时表只在当前会话中可见

  • 临时表的生命周期是当前连接(MySQL宕机或重启,则当前连接结束)

  • 只读事务性能改进库的整体性能。

  • 加速连接处理。

  • 在MySQL 5.7之前,变量的初始化操作(THD、VIO)都是在连接接收线程里面完成的,现在将这些工作下发给工作线程,以减少连接接收线程的工作量,提高连接的处理速度。这个优化对那些频繁建立短连接的应用,将会非常有用。

  • 复制性能的改进 (支持多线程复制(Multi-Threaded Slaves, 简称MTS)

  • MySQL的默认配置是库级别的并行复制,为了充分发挥MySQL
    5.7的并行复制的功能,我们需要将slave-parallel-type配置成LOGICAL_CLOCK。

  • 支持多源复制(Multi-source replication)

严格性改变

  • 默认启用STRICT_TRANS_TABLES模式。

  • 对ONLY_FULL_GROUP_BY模式实现了更复杂的特性支持,并且也被默认启用。

  • 其他被默认启用的sql mode还有NO_ENGINE_SUBSTITUTION。

默认参数的改变

  • 默认binlog格式调整为ROW格式

  • 默认binlog错误后的操作调整为ABORT_SERVER

  • 在先前的选项下(binlog_error_action=IGNORE_ERROR),如果一个错误发生,导致无法写入binlog,mysql-server会在错误日志中记录错误并强制关闭binlog功能。这会使mysql-server在不记录binlog的模式下继续运行,导致从库无法继续获取到主库的binlog。

  • 默认开启mysql崩溃时的binlog安全。

  • 默认调低slave_net_timeout。

安装不同

  • mysql_install_db已经不再推荐使用了,建议改成mysqld
    –initialize完成实例初始化。如果datadir指向的目标目录下已经有数据文件,则会有[ERROR] Aborting;

  • 在初始化时如果加上–initial-insecure,则会创建空密码的root@localhost账号,否则会创建带密码的 root@localhost账号,密码直接写在log-error日志文件中;新用户登入后需要立刻修改密码,否则无法继续后续的工作。

2.2 MySQL 工具

2.2.1 mysql 命令行实用程序

在这里插入图片描述

2.2.2 MySQL Administrator

MySQL Administrator (MySQL 管理器)是一个图形交互客户机,来简化MySQL服务器的管理。

2.2.3 MySQL Query Browser

MySQL Query Browser 为一个图形交互客户机,用来编写和执行MySQL命令。

参考文献:《MySQL必知必会》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值