客户端与服务器端模型
mysql是一个单进程,多线程的程序
mysql自带的程序
mysql
mysqladmin
mysqldump
mysqld
二进制的程序,一个后台守护进程
单进程多线程的服务结构
客户端连接服务
tcp/ip连接(远程连接) mysql -uroot -p123456 -h 10.0.0.52 mysql -uroot -p123456 -s /tmp/mysql.sock 套接字(本地连接) mysql -uroot -p123456 -s /tmp/mysql.sock mysql -uroot -p123456 使用socket方式登陆
实例
mysql在启动过程 -启动后台守护进程,并生成工作线程 -预分配内存结构供mysql处理数据使用 实例是什么 mysql后台进程+线程+预分配的内存结构
mysql服务器构成
连接层
通信协议 tcp/ip socket 分配线程,提供服务 验证连接合法性
sql层
解析器
授权
优化器
查询执行
查询高速缓存
查询缓存日志记录
存储引擎层
插件式
磁盘 innodb myisam
内存 memory
网络 ndb
存储引擎是充当不同表类型的处理程序的服务器组件
存储引擎用于:
存储数据
检索数据
通过索引查找数据
双层处理
上层包括sql解析器和优化器
下层包含一组存储引擎
sql层不依赖于存储引擎
引擎不影响sql处理
有一些例外
功能
存储介质
事务功能
锁定
备份和恢复
优化
特殊功能:
全文搜索
引用完整性
空间数据处理
mysql逻辑结构
--库 show databasses; --表 show tables; --记录 select * from database.table; --字段 desc user;
mysql如何使用磁盘
数据库对应的是目录 表对应的是三个文件 [root@root mysql]# ll user.* -rw-rw---- 1 mysql mysql 10684 Dec 12 23:23 user.frm -rw-rw---- 1 mysql mysql 488 Dec 13 20:47 user.MYD -rw-rw---- 1 mysql mysql 2048 Dec 13 20:47 user.MYI MYISAM .frm文件是字段结构 .myd是记录数据 .myi是索引记录 innodb db.opt t1.frm 文件是字段结构 t1.ibd 是记录数据和索引 共享表空间: ibdata1 ibdata2 (系统元数据--基表---?information_schema---show) 独立表空间: t1.ibd t1.frm 5.6以后默认的存储引擎 创建一个数据库和表,查看独立表空间的区别
mysql存储底层结构(段、区、块)
mysql连接管理