MySQL笔记 -- 概览

A:

产品分类

  • RDBMS:
  1. 二维表,有严格的行列结构
  2. 支持复杂的查询
  3. MySQL、Oracle、PG
  • NoSQL
  1. 没有严格的行列结构
  2. 可伸缩性、可扩展性、性能
  3. KV:Redis,Memcache
  4. Document:MongoDB
  5. 搜索:ES
  6. Wide:Cassandra
  • NewSQL R+N+分布式
  1. Spaner
  2. TiDB
  3. PolarDB

三层结构

  • 连接层:
  1. 提供连接协议(TCP/IP,Socket)
  2. 用户名/密码/IP等合法性
  3. 开启专用连接线程show processlist(接受语句,返回结果)
  4. 将语句交给下一层
  • SQL层:
  1. 接受语句
  2. 语法检查和SQL_MODE
  3. 语义检查与权限检查
  4. 解析语句,生成多种执行计划树
  5. 通过优化器算法(执行代价)
  6. 优化器选择觉得最优的执行方法
  7. 语句执行器,真正运行SQL语句
  8. 提供了查询缓存(默认不开启)
  9. 日志记录(审计日志,通用日志,二进制日志)
  • 存储引擎层(FS):
  1. 根据SQL的执行结果,去磁盘上找到相应数据。
  2. 找到磁盘上16进制的数据
  3. 再次返回SQL层,结构化成二维表的形式
  4. 再由连接层线程,最终展现出来

存储结构

Linux目录
create database wordpress charset utf8mb4;mkdir /wordpress
show database;ls /wordpress
use wordpress;cd /wordpress
Linux文件
列(字段)
列属性(数据类型、约束)
数据行(记录)文件行
行属性文件属性

而实际上,MySQL的物理存储在Linux系统上体现出的就是一个文件夹(e.g. 创建wordpress
表时就生成了/data/mysql/data/wordpress目录)。

B:

配置文件

  • 作用
  1. 影响数据库的启动
  2. 影响客户到的功能
  • 方法
  1. 使用初始化配置文件(e.g. /etc/my.cnf)
  2. 启动命令行上(e.g. mysqld_safe --skip-networking)
  3. 预编译时设置(仅限于编译安装方式)
  • 配置文件标签的归类
  1. 服务器端
    [mysqld]
    [mysqld_safe]
    [server]
  2. 客户端
    [mysql]
    [mysqladmin]
    [mysqldump]
    [client]
  • 配置文件样板
    [mysqld]
    user=mysql
    basedir=/usr/local/mysql
    datadir=/data/mysql/data
    socket=/tmp/mysql.sock
    server_id=6
    port=3306
    [mysql]
    socket=/tmp/mysql.sock

  • 配置文件读取顺序

https://dev.mysql.com/doc/refman/8.0/en/option-files.html#option-file-order
File NamePurpose
/etc/my.cnfGlobal options
/etc/mysql/my.cnfGlobal options
SYSCONFDIR/my.cnfGlobal options
$MYSQL_HOME/my.cnfServer-specific options (server only)
defaults-extra-fileThe file specified with --defaults-extra-file, if any
~/.my.cnfUser-specific options
~/.mylogin.cnfUser-specific login path options (clients only)
DATADIR/mysqld-auto.cnfSystem variables persisted with SET PERSIST or SE
启动MySQL时在命令行上指定:--defaults-file=file_name,会迫使服务忽略除mysqld-auto.cnf和.mylogin.cnf外的任何配置文件。

内置功能

  • 命令行选项
选项作用
-u用户
-p密码
-S套接字文件
-P端口号
-h主机
-e免交互执行命令
<导入SQL文件
  • 内置命令
命令作用
help帮助
\c结束当前命令执行
\G格式化输出
source导入sql文件
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页