[数据库]基础Part1

关系型数据库和非关系型数据库

非关系型数据库

  • 键值数据库
  • 文档型数据库
  • 搜索引擎数据库,采用索引提升检索效率,eg: ES
  • 列式数据库,将数据按照列存储的方式保存在数据库中。目的是降低系统 I/O
  • 图形数据库

关系型数据库 MySQL

客户端和服务端通信

MySQL 支持几种类型的通行方式:

  • TCP/IP: 数据库服务器进程和客户端进程可能运行在不同的主机中,它们之间必须通过 网络进行通信。MySQL采用 τ田 作为服务器和客户端之间的网络通信协议。
  • 命令管道和共享内存: 是 Windows 操作革统中的两种进程间通信方式,使用上服务端进程和客户端进程需要在同一个服务器中。
    • 命令管道通信: 在服务端启动时使用 --enable-named­ pipe 参数,在客户端的启动命令中添加上 --pipe 或者 --protocol=pipe 参数
    • 内存共享: 在服务端启动时使用 --shared-memory 参数,在客户端的启动命令中添加上 --protocol=memory 参数
  • UNIX 域套接字: 如果服务器进程和客户端进程都运行在操作系统为类 UNIX 的同一台机器上,则可以使用 UNIX 域套接字进行进程 间通信。如果在启动客户端程序时没有指定主机名,或者指定的主机名为 localhost,又或者指定了--protocol=socket 的启动参数,那么服务器程序和客户端程序之间就可以通过 UNIX 域套接字进行通信。

客户端查询请求的过程

以查询请求为例,服务器程序在处理客户端发送过来的请求时,大致分为以下几个部分:

  • 连接管理: 主要负责连接的建立与信息的认证
  • 解析与优化: 主要进行查询缓存、语法解析、查询优化
  • 存储引擎: 主要负责读取和写入底层表中的数据

MySQL 配置(Unix 系统)

常规的 MySQL 的配置文件可以存放在多个路径下,但是不同的路径下优先级级不同;如果是同一文件中存在相同启动项,也是遵循靠后的配置项覆盖前面的配置项。相同的配置信息,靠后的配置信息会覆盖掉靠前的配置信息。

路径或配置名称 说明 启动优先级
/etc/my.cnf或者 /etc/mysql/my.cnf 系统配置文件 第一启动配置文件
defaults-extra-file 启动服务时,申明的配置文件。eg: mysqld --defaults-extra-file-<配置文件>
~/.my.cnf 不同登录用户的配置文件,需要用户设置
需要特别注意,命令行中的配置项的权限最高,会覆盖掉配置文件中的配置选项

配置文件内容

配置文件中的启动项按照选项组来划分的,分别包括:

1
2
3
4
5
6
7
8
9
10
11
[server]

[mysqld]

[mysqld_safe]

[client]

[mysql]

[mysqladmin]

不同的服务会去读取不同的选项组:

程序名称 类别 读取选项组
mysqld 启动服务器 [mysqld], [server]
mysqld_safe 启动服务器 [mysqld], [server], [mysqld_safe]
mysql.server 启动服务器 [mysqld], [server], [mysql.server]
mysql 启动客户端 [mysql], [client]
mysqladmin 启动客户端 [mysqladmin], [client]
mysqldump 启动客户端 [mysqldump], [client]
如果需要对特定版本使用特定的选项组,那么需要在选项组上添加上版本信息,例如 [mysqld-5.7] 表示5.7 的版本才使用该选项组
作者

ZenRay

发布于

2024-05-03

更新于

2024-05-03

许可协议

CC BY-NC-SA 4.0