1.调优的出发点和从那几个方面进行优化
出发点:
减少响应时间,提高吞吐量
三个维度优化:
客户端优化:sql语句:通常业务中最常见的就是sql查询速度慢的问题,这个需要我们 用expiain去排查慢查询问题
服务端优化:Mysql配置:mysql配置文件中支持很多配置选项,同时很多重要配置也帮 助我们设置了默认值,通常时无需修改就可以正常部署,但是这也代表这默认配置并不是适合当前项目及系统的最佳配置。
架构层优化:表结构和存储引擎:我们都知道数据库表结构设计对于业务来说时非常重 要的,良好的表结构设计时高性能的基石,同时Mysql也支持多种储存引擎,每种存储引擎都有自己的特点,针对不同的的表使用不同存储引擎
2.调优的方案有哪些
应用层方案:相对于来说把所有压力都给到数据库,其实我们在应用层还有很多操作可以让数据库减轻压力,也是一种对于数据库的调优,比如缓存,限流,异步
一般来说事务有四个标准属性:
1.原子性:一个事务中的所有 SQL 语句,要么全部执行成功,要么全部执行失败,不会结束在中间的某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
2.一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的数据必须完全符合所有的预设规则,其中包含数据的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
3.隔离性:
4.持久性
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
事务执行流程:
4。mysql的数据结构
mysql中主要应用的索引数据结构为B+树
为什么用这种结构:
由于数据存储于物理磁盘,所以要尽量减少磁盘IO的次数
IO的次数取决于树的高度
B+树将真实的数据放在叶子节点,数据项占的空间越小,数据项的数量越多,树的高度越低