MySQL是什么?

关于Mysql想必大家都知道它是最流行的关系型数据库管理系统之一,现在包括facebook. google、 Adobe、 alcatel Lucent和zappos在内的世界上许多规模最大、增长最快的机构都依赖mysq|来节省时间和资金,为它们的高容量网站、关键业务系统和打包软件提供服务。

 

Mysql优化问题

大家也知道谈到MySQL就必定会要涉及到调优问题:

为什么需要优化mysq|数据库

  • 避免出现页面访问错误
  • 增加数据库的稳定性

mysq|数据库需要优化哪些内容

  • 优化成本低到高,优化效果高到低
  • sq及索引- ->数据库表结构一> 系统配置一> 硬件

其实大致可以分为两方面来进行优化:一是在数据库级别进行优化,二是在硬件级别进行优化,三是平衡便携性和性能。

在数据库级别进行优化

使数据库应用程序快速运行的最重要因素是其基本设计,我们不得不思考以下问题:

  1. 表的结构是否正确?
  2. 是否有正确的索引以提高查询效率?
  3. 你是否为每个表使用了适当的存储引擎,并利用了所使用的每个存储引擎的优势和功能?
  4. 每个表都使用适当的行格式吗?
  5. 应用程序是否使用适当的锁定策略?
  6. 所有用于缓存的内存区域大小都正确吗?

在硬件级别进行优化

随着数据库变得越来越繁忙,任何数据库应用程序最终都会达到硬件极限。DBA必须评估 是否有可能调整应用程序或重新配置服务器以避免这些瓶颈,或者是否需要更多的硬件资源。系统瓶颈通常来自以下来源:

  1. 磁盘寻求
  2. 磁盘读写
  3. CPU周期
  4. 内存带宽

平衡便携性和性能

要在可移植的MySQL程序中使用面向性能的SQL扩展,可以在/ *!中的语句中包装特定于MySQL的关键字。* /注释分隔符。其他SQL Server忽略注释的关键字。

综上所述,大家可以参考一下下面的Mysql调优思维导图,可以清晰的认识到Mysql优化所需要做的事情。

 

对于调优大家可以参考这一份文档(篇幅限制不能全部展示出来):需要资料的小伙伴帮忙点赞文章,关注我之后添加小助理vx:bjmsb2020 即可免费获取!

MySQL性能调优与架构设计

 

对于Mysql入门,大家可以参考下面这份文档,即使你零基础也无伤大雅,下面这份文档深入浅出地介绍了MySQL相关知识。

第1部分 倔强青铜篇

第1章 MySQL简介与主流分支版本

  • MySQL简介
  • MySQL主流的分支版本

第2章 MySQL数据库的安装、启动和关闭

  • 下载MySQL二进制软件包
  • 安装前系统环境检测
  • MySQL5.6版本的安装过程
  • 创建密码
  • 关闭MySQL数据库
  • 基础数据库的名称
  • MySQL 5.7版本的安装
  • MySQL数据库root密码丢失的问题
  • MySQL数据库的连接方式
  • 用户权限管理

第3章 MySQL体系结构与存储引擎

  • MySQL体系结构
  • Query Cache详解
  • 存储引擎
  • InnoDB体系结构
  • InnoDB的三大特性

 

第4章 数据库文件

  • 参数文件
  • 参数类型
  • 错误日志文件(error log)
  • 二进制日志文件(binary log)
  • 慢查询日志(slow log)
  • 全量日志(general log)
  • 审计日志(audit log)
  • 中继日志(relay log)
  • Pid文件
  • Socket文件
  • 表结构文件
  • InnoDB存储引擎文件

 

第5章 表

  • 整型
  • 浮点型
  • 时间类型
  • 字符串类型
  • 字符集
  • 表碎片产生的原因
  • 碎片计算方法及整理过程
  • 表统计信息
  • 统计信息的收集方法
  • MySQL库表常用命令总结

 

第6章 索引

  • 二叉树结构
  • 平衡二叉树结构
  • B-tree结构
  • B+tree
  • 哈希索引
  • 索引的总结

 

第7章 事务

  • 事务的特性
  • 事务语句
  • truncate和delete的区别
  • 事务的隔离级别
  • 细说脏读、不可重复读、幻读、可重复读现象

第8章 锁

  • InnoDB的锁类型
  • InnoDB行锁种类
  • 锁等待和死锁
  • 锁问题的监控

 

第2部分 秩序白银篇

第9章 备份恢复

  • MysSQL的备份方式
  • 冷备及恢复
  • 热备及恢复
  • 流式化备份
  • 表空间传输
  • 利bing2sq进行内回
  • binlog server

第3部分 荣耀黄金篇

第10章 主从复制概述

  • 常见的几种主从架构模式图
  • 主从复制功能
  • 主从复制原理
  • 复制中的重点参数详解

 

第11章 复制原理及实战演练

  • 异步复制
  • 主从复制故障处理
  • 半同步复制
  • 半同步复制和异步复制模式的切换
  • GTID复制
  • 多源复制
  • 主从延迟的解决方案及并行复制
  • 主从复制的数据校验

 

第4 部分尊贵铂金篇

第 12章 MHA

  • MHA简介
  • 实战演练

 

第13章 Keepalived+双主架构

  • Keepalived介绍
  • 集群措建思路及建议
  • 实验部署演练

第14章 PXC

  • PXC原理
  • PXC架构的优缺点
  • PXC中重要概念和重点参数
  • PXC架构搭建实战
  • PXC集群状态的监控
  • 从节点在线转化为PXC节点

第15章 ProxySQL

  • ProxySQL的安装与启动
  • 配置ProxySQL监控
  • ProxySQL的多层配置系统
  • 配置ProxySQL主从分组信息
  • 配置读写分离策略
  • 测试读写分离

需要这四份Mysql文档的小伙伴,麻烦点赞转发加关注小编支持一下,然后添加下助理vx:bjmsb2020 即可免费获取!

第5部分 永恒钻石篇

第16章 MySQL5.7新特性

  • InnoDB存储引擎的增强
  • 其他方面的增强

第17章 MySQL全面优化

  • 硬件优化
  • 配置参数优化
  • 从Linux操作系统层面来谈对MySQL的优化
  • 表设计及其他优化
  • 整体管理优化总结

 

这里大家可以参考一下另外一份文档:Mysql性能优化21个最佳实践

 1. 为查询缓存优化你的查询

 2. EXPLAIN 你的 SELECT 查询

 3. 当只要一行数据时使用 LIMIT 1

 4. 为搜索字段建索引

 5. 在 Join 表的时候使用相当类型的例,并将其索引

 6. 千万不要 ORDER BY RAND()

 7. 避免 SELECT *

 8. 永远为每张表设置一个 ID

 9. 使用 ENUM 而不是 VARCHAR

 10. 从 PROCEDURE ANALYSE() 取得建议

 11. 尽可能的使用 NOT NULL

 12. Prepared Statements

 13. 无缓冲的查询

 14. 把 IP 地址存成 UNSIGNED INT

 15. 固定长度的表会更快

 16. 垂直分割

 17. 拆分大的 DELETE 或 INSERT 语句

 18. 越小的列会越快

 19. 选择正确的存储引擎

 20. 使用一个对象关系映射器(Object Relational Mapper)

 21. 小心“永久链接”

篇幅限制主要内容就不能展示出来了:

 

第6部分 至尊星耀篇

第 18章 Lepus 之 MySQL 监控

  • Lepus简介
  • 实战部署
  • 监控MySQL服务器
  • 部署Lepus慢查询分析平台实战
  • 监控总结

 

第19章 MySQL版本升级

  • 升级方式
  • 实战演练

第7部分 最强王者篇

第20章 MySQL面试宝典

  • 自我介绍
  • 技术问答

文档中总结的技术问答大概就是这15问:

  1. 你目前接触的MySQL版本是什么?除了官方版本,还接触过其他的MySQL分支版本吗?
  2. MySQL主要的存储引擎MyISAM和InnoDB的不同之处?
  3. 介绍一下InnoDB的体系结构。
  4. MySQL有哪些索引类型?
  5. MySQL binlog有几种格式?生产中你用哪种?各自有什么特点?
  6. MySQL主从复制的具体原理是什么?
  7. MySQL主从延迟的原理是什么?如何监控主从延迟,如何解决主从延迟问题?
  8. 数据库中的双一是什么?
  9. 如何实施大表DDL语句才能把性能影响降到最低?
  10. 为什么要为InnoDB表设置自增列做主键?
  11. 如何优化一条慢 SQL语句?
  12. 服务器负载过高或者网页打开缓慢,简单说说你的优化思路?
  13. 你接触过哪些MySQL的主流架构?架构应用中有哪些问题需要考虑?
  14. 什么是死锁?锁等待?通过数据库哪些表可以监控?
  15. 你之前处理过MySQL的哪些案例?

大家看看这15问大家能答出几问,另外还为大家整理了140道大厂面试Mysql真题,希望对大家有所帮助(篇幅限制不能全部展示出来了):

 

这份文档按照从青铜到王者,分级别、分层次地介绍了MySQL数据库中涉及的核心知识点,采用原理配合生产实战的讲解方式,深入剖析MySQL数据库,就是希望可以在工作中对大家有所帮助,可以帮助那些刚进入该领域的年轻人。虽然现在网上的学习资料很多,很少有人再愿意看书了。但大家抽闲时还是可以读一读,也许就可以从中找到解决问题的灵感。

雷霆雨露,俱是天恩。在工作生活中遇到的再难的事,都是. 上天对我们的“恩赐”,不要着急,总会有解决问题的办法。最后祝大家都可以找到理想的工作,薪资翻倍!我们一起努力!

需要这份四份Mysql文档的小伙伴,麻烦点赞转发加关注小编支持一下,然后添加小助理vx:bjmsb2020 即可获取!