设为首页 收藏本站
查看: 1112|回复: 0

[经验分享] MySQL数据库从入门到实战(一)

[复制链接]

尚未签到

发表于 2018-10-6 08:32:22 | 显示全部楼层 |阅读模式
  第一部分:了解DBA体系
  一、初级DBA应该掌握哪些技能?(运维人员必会知识)
  1.MySQL安装部署
  2.基本参数配置
  3.备份策略设计与实现
  二、中级DBA应该掌握哪些技能?
  1.故障处理能力(备份或者其他手段)
  2.MySQL监控能力
  3.基本优化能力(索引、执行计划、慢日志分析);有一定的SQL分析能力
  4.主从复制的基本管理、应用、故障处理
  三、高级DBA应该掌握哪些技能?
  1.MySQL性能调优:对整体架构、“业务”、“用户行为”深入了解,要有很扎实的SQL能力
  2.高性能、高可用架构:对整体架构、“业务”、“用户行为”深入了解
  四、对数据的理解
  对现实对象、事件的抽象显示或存储方式
  数据库适合存储什么数据?
  》重要数据
  》非二进制的,文本形式的更适合于存放到数据库中
  》有关系,有复杂逻辑的数据
  》数据管理复杂的
  第二部分:DBMS数据库管理系统
  一、作用:
  1、更有条理的存储和查询数据
  2、提供更高级的数据管理方式(备份、恢复、优化、安全等等)
  二、分类:
  1.关系型
  二维表
  典型产品 Oracle传统企业,MySQL是互联网企业
  数据存取是通过SQL
  最大特点,数据安全性方面强(ACID)
  2.非关系型(NoSQL)
  非关系型数据库(Not only SQL)
  不是否定关系型数据库,做关系型数据库的的补充
  3.数据库版本
  oracle数据库版本介绍(目前仍位居第一)
  (8.1.7,9.2.0.8  ,10.2.0.4 10.2.0.5,11.2.0.3  11.2.0.4,12.2)
  MySQL数据库版本介绍(开源免费)
  (5.6.36 ,5.6.38 ,5.6.34 ,5.7.18,5.7.20)
  面试问题总结: 询问你公司用的mysql版本,为什么用?
  行业规范,选择主流大版本,发布六个月以上GA版本,我们公司选择这款数据库是基于公司业务特点决定的,开发阶段也是用的5.6的版本。(根据自己业务公司情况来说)
  三、补充:
  》mariadb(mysql的一个主要分支)存储引擎TokuDB特点:
  1.insert操作比innodb性能高3-4倍
  2.数据压缩比8倍以上
  3.查询性能比innodb好
  》企业应用场景:
  zabbix(爬虫类)应用业务类型:(原因如下)
  1.insert插入多
  2.数据量大,需要存储大量数据
  》perconaDB(了解,有精力可研究)研究它的工具:
  xtrabackup (用于优化SQL)
  第三部分:MySQL体系结构
  1、客户端、服务器端模型
  MySQL是一个典型的C/S结构的模型,客户端——服务器一种模型。
  服务端:mysqld
  客户端:自带客户端工具(mysql、mysqldump等),API驱动
  一、mysqld构成
  (1).连接层
  说明:
  》提供通信协议
  TCP/IP   ---所有系统通用
  socket   ---linux特有
  》   验证用户的合法性(匹配mysql.user):
  用户@'ip'  密码
  》提供链接线程;随着客户端请求派生出专门的响应线程;作用是和客户端进行交互
  查看当前数据库的连接线程数:show full processlist
  过程:》接收客户端发来的SQL》得到查询结果之后返回给客户端结果》向下层(SQL层)传输接收到的SQL》后端处理完成的结果负责接收,转给客户端。
  (2)SQL层
  》SQL线程接收上层线程发送过来的SQL语句
  》检查语法是否正确,有误抛出错误提示,还有授权检测
  》检查语义,语句的类型(DDL、DCL、DML、DQL)
  》会将语句交给不同解析进行解析
  》解析器开始解析,生成执行计划
  》优化器,判断所有生成的执行计划,找到成本最低的执行计划,转给执行器
  》执行器,执行这个执行计划,得出去哪个盘找哪个文件的哪页哪行数据
  》有专门的线程将结果发送给下层(存储引擎层)继续处理
  》下层传过来的数据结构化成表的形式,转给上层连接层专门线程
  》将上层执行过的SQL语句进行hash,生成一个hash结果(SQL_ID)和获取数据结果缓存下来(QUERY_CACHE)。
  补充:
  》企业里现在主流解决方案关闭QUERY_CACHE,用redis或memcache代替
  (3)存储引擎层
  》接收上层传过来的数据位置,找到相应的页上的行
  》找到行之后,发送给SQL层
  二、库,表,页,区,段定义
  ————————————————————————
  数据库的逻辑结构(数据库对象)
  库:更好的管理一堆表
  表:(1)表属性:表名、表中的列名和列定义、表的存放位置定义。
  (2)表真实数据行。
  我们将来,对数据库的操作,实际上就是对以上的对象进行操作。
  +++++++++++++++++++++++++++++++++++++++++
  (1)页(默认16k):mysql的最小物理存储分配单元。
  用来存放数据库中表中的行
  (2)区:mysql认为对于一行数据来讲,如果需要多个页情况,我们尽量给他连续的才更高效,所有有了区的概念。
  (3)多个区构成,我们认为,连续的区组成段


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-613333-1-1.html 上篇帖子: MySQL用户管理及SQL入门 下篇帖子: MySQL数据库从入门到实战(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表