数据库架构与调优
1.Mysql的物理组成:
(一) 日志文件(包括):
1) 错误日志:Error Log
2) 二进制日志:Binary Log
3) 更新日志:update log
4) 查询日志:query log
5)慢查询日志:slow query log(分析慢查询日志的工具程序mysqlslowdump)
6) Innodb的在线redo日志
(二) 数据文件(放在默认目录下对应的数据库名文件夹下,包括)
1) “.frm”文件:元数据信息都存放在“.frm”文件中,包括表结构的定义信息,所有数据库引擎都有.
2) “.MYD”文件: 存放MyISAM表的数据,一个表对应一个
3) “.MYI”文件: 主要存放MyISAM表的索引,一个表对应一个.
4) “.ibd”文件和ibdata文件(InnoDb的数据与索引的)
(三) Replication相关文件:
1) master.info文件:记录master端的信息
2) relay log 和relay log index:记录slave端的部分线程信息
3) relay-log.info文件:记录relay log的相关信息
(四) 其他文件信息
1) system config file:一般放在"/etc"目录下或者”/windows”目录下
2) pid file:记录进程信息
3) socket file:Unix/Linux下不能通过TCP连接服务器而是直接用Unix socket连接服务器
2. MySQL Server 系统架构:
MySQL Server是一个两层架构:
第一层是Sql Layer包括很多逻辑处理
第二层是存储引擎层:如MyISAM负责对数据的实际操作
MySQL的Sql Layer层子模块:
1) 初始化模块:负责服务器程序启动的一些初始操作
2) 核心API,提供一些高效的数据操作函数
3) 网络交互模块:封装了底层的网络交互操作api相当于一个DAL
4) Client& Server交互协议模块:封装了两端的交互规则,和数据格式
5) 用户模块: 主要包括用户的登录连接权限控制和用户的授权管理
6) 访问控制模块:控制数据操作的权限性
7) 连接管理、连接线程和线程管理:管理连接线程和维护工作者线程
8) Query解析和转发模块:处理和分发各类SQL语句
9) Query Cache模块:维护查询结果的缓冲区机制
10) Query 优化模块:根据统计信息,分析出最优执行计划
11) 表变更管理模块:处理表级操作
12) 表维护模块:检查表的状态,错误修复,优化等
13) 系统状态维护模块:包括处理各种察看系统状态的操作
14) 表管理器:维护表对应的物理文件,以及对表锁的管理
15) 复制模块:包括Slave端(副服务器)和Master端(主服务器)之间的信息交换
16) 储存引擎的接口模块:抽象各种储存引擎级的最底层接口
3. mysql常用工具以及作用:
1)客户端终端mysql:提供命令输入
2)mysqladmin:提供管理MySql的各种功能.如状态检查,统计信息flush,添加删除数据库等
3)mysqldump:备份(数据导出工具)
4)mysqlimport:备份导入工具
5)musqlbinlog:提供管理binlog来管理回复工作
6)musqlcheck:检查,修复,分析和优化MusqlServer中的表
7)myisamchk:检查,修复MyIsam存储引擎的表
8)myisampack:对MyISAM表进行压缩处理,减少占用空间
9)mysqlhotcopy:是用perl脚本来写的,用于备份
4.储存引擎(理解为:建立在文件系统上一套高效的逻辑操作和数据组织方式集合)
MySQL存储引擎概述:
MyIsam存储引擎是MySQL默认的储存引擎。把一个表储存为三个以表名命名的物 理文件,锁级别是表级锁。
MyISAM主要支持三种索引类型:
首先:是B-Tree索引,更类似B plus树所有数据都在叶结点。
其次:R-Tree索引,主要用于存储空间(地方)和多维数据字段做索引,解 决like低效问题。
最后:是Full-text索引,全文索引,解决like低效问题
Innodb储存引擎简介:
Innodb储存引擎,最重要的特点是支持事务安全。其次是通过对undo信息,实现 对数据多版本读取。再其次是锁定机制的细化,支持行级锁和表级锁。最后的特点是实 现外键引用。
NDB Cluster储存引擎
MERGE储存引擎
Memory储存引擎(支持hash索引和B-Tree索引,数据储存在内存中)
BDB存储引擎
等等
5.结合数据库系统谈网络安全
系统安全相关因素,包括三个方面的:
一. 外围网络:主要对包的控制,过滤和对洪泛攻击,和网络嗅探等的预防,可把网络安置到一个安全的局域网中,设置路由器的安全选项来加强防御。
二. 主机安全:防止局域网内的恶意入侵者,本机上的不安全用户
三. 数据库安全:用户管理模块,监控管理用户登录。数据访问模块过滤和控制用户的非法访问
6.Mysql权限:
分成5层:(优先级由高到低)
1. 全局级
2. 数据库级
3. 表级
4. 列级
5. 运行级(主要是针对procedure和function这两种对象)
7.数据库备份(用mysqldump来做)
查看mysql索引 数据库备份分为两种:物理备份和逻辑备份
逻辑备份(按商业逻辑属性存放的)有两种方式:
1.生成Insert语句备份
2.生成特定格式的纯文本备份数据文件备份
(例如:生成以分隔字符将数据分隔记录在文本文件中)
物理备份(按文件组织形式存放的)
目标:在datadir目录下到对应引擎的数据库(每个引擎都有对应文件夹)
备份MyISAM:备份上面提到的三种格式文件和共有物理文件
其他引擎的物理备份都有各自注意的地方。
8.哪些方面对数据库性能有影响?
1)商业需求对性能起最大的影响
2)系统架构以及实现对性能的影响
1.从架构的角度去权衡Client和Server的交互次数与SQL语句的复杂度(例如, 不同的浏览器获取一个相册的所有照片的次数不一样,方式也不一样,造成的 影响也不一样)
2.怎么组织整个数据系统,主要是哪些数据类型应该放在DB中,不是所有的数据 都适合放在DB中的,例如:二进制多媒体数据,流水列队数据(数量增长大而 且更新频繁的数据),超大文本数据
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论