MySQL是什么?
关于Mysql想必大家都知道它是最流行的关系型数据库管理系统之一,现在包括facebook. google、 Adobe、 alcatel Lucent和zappos在内的世界上许多规模最大、增长最快的机构都依赖mysq|来节省时间和资金,为它们的高容量网站、关键业务系统和打包软件提供服务。
Mysql优化问题
大家也知道谈到MySQL就必定会要涉及到调优问题:
为什么需要优化mysq|数据库
- 避免出现页面访问错误
- 增加数据库的稳定性
mysq|数据库需要优化哪些内容
- 优化成本低到高,优化效果高到低
- sq及索引- ->数据库表结构一> 系统配置一> 硬件
其实大致可以分为两方面来进行优化:一是在数据库级别进行优化,二是在硬件级别进行优化,三是平衡便携性和性能。
在数据库级别进行优化
使数据库应用程序快速运行的最重要因素是其基本设计,我们不得不思考以下问题:
- 表的结构是否正确?
- 是否有正确的索引以提高查询效率?
- 你是否为每个表使用了适当的存储引擎,并利用了所使用的每个存储引擎的优势和功能?
- 每个表都使用适当的行格式吗?
- 应用程序是否使用适当的锁定策略?
- 所有用于缓存的内存区域大小都正确吗?
在硬件级别进行优化
随着数据库变得越来越繁忙,任何数据库应用程序最终都会达到硬件极限。DBA必须评估 是否有可能调整应用程序或重新配置服务器以避免这些瓶颈,或者是否需要更多的硬件资源。系统瓶颈通常来自以下来源:
- 磁盘寻求
- 磁盘读写
- CPU周期
- 内存带宽
平衡便携性和性能
要在可移植的MySQL程序中使用面向性能的SQL扩展,可以在/ *!中的语句中包装特定于MySQL的关键字。* /注释分隔符。其他SQL Server忽略注释的关键字。
综上所述,大家可以参考一下下面的Mysql调优思维导图,可以清晰的认识到Mysql优化所需要做的事情。
对于调优大家可以参考这一份文档(篇幅限制不能全部展示出来):
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的三大特性
需要这份四份Mysql文档的小伙伴,添加小助理vx:bjmsb2020
第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问:
- 你目前接触的MySQL版本是什么?除了官方版本,还接触过其他的MySQL分支版本吗?
- MySQL主要的存储引擎MyISAM和InnoDB的不同之处?
- 介绍一下InnoDB的体系结构。
- MySQL有哪些索引类型?
- MySQL binlog有几种格式?生产中你用哪种?各自有什么特点?
- MySQL主从复制的具体原理是什么?
- MySQL主从延迟的原理是什么?如何监控主从延迟,如何解决主从延迟问题?
- 数据库中的双一是什么?
- 如何实施大表DDL语句才能把性能影响降到最低?
- 为什么要为InnoDB表设置自增列做主键?
- 如何优化一条慢 SQL语句?
- 服务器负载过高或者网页打开缓慢,简单说说你的优化思路?
- 你接触过哪些MySQL的主流架构?架构应用中有哪些问题需要考虑?
- 什么是死锁?锁等待?通过数据库哪些表可以监控?
- 你之前处理过MySQL的哪些案例?
大家看看这15问大家能答出几问,另外还为大家整理了140道大厂面试Mysql真题,希望对大家有所帮助(篇幅限制不能全部展示出来了)
雷霆雨露,俱是天恩。在工作生活中遇到的再难的事,都是. 上天对我们的“恩赐”,不要着急,总会有解决问题的办法。最后祝大家都可以找到理想的工作,薪资翻倍!我们一起努力!
需要这份四份Mysql文档的小伙伴,添加小助理vx:bjmsb2020 或者下面扫一扫添加