美文网首页
2020-11-07-Mysql(优化基础)

2020-11-07-Mysql(优化基础)

作者: 冰菓_ | 来源:发表于2020-11-20 11:18 被阅读0次

1.三大范式

  • 第一范式:确保每列的原子性(强调的是列的原子性,即列不能够再分成其他几列).
  • 第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主键相关(一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的部分)
  • 第三范式:在第二范式的基础上更进一层,目标是确保每列都和主键列直接相关,而不是间接相关(另外非主键列必须直接依赖于主键,不能存在传递依赖).
image.png image.png

2.explain

(索引)


image.png

(哪些情况用索引)


image.png

(id 注意如果有虚拟表则虚拟表的后面的数字是id号)


image.png

(select_type)


image.png

(type)


image.png

(是否用到了索引)


image.png image.png image.png image.png

(extra)


image.png

3.索引优化

image.png
image.png

4.为什么不建议用select * ?

假设某一天修改了表结构,如果用select *,返回的数据必然会会变化,客户端
是否对数据库变化作适配,是否所有地方都做了适配,这都是问题。
可能会存在不需要的列,传输过程中有不必要的性能损耗;
客户端解析查询结果也需要更多损耗

5.例题

使用了select ,必然导致数据库需要先解析代表哪写字段,从数据字段中将*转化为具体的字段含义,存在性能开销;
由于覆盖索引我们可能只要获取索引,select * 增加了不必要的io流

image.png

6.order by

image.png

7.锁理论

image.png

脏读 :
读取到了未提交的数据(如果事务这时候回滚了,那么第二个事务就读到了脏数据)

不可重复读
重点是修改:在同一事务中,同样的条件,第一次读的数据和第二次读的数据不一样。(一个事务多次读取同一范围内数据时,另外一个事务发生insert操作并提交了)。数据变化。

幻读
重点在于新增或者删除:在同一事务中,同样的条件,,第一次和第二次读出来的记录数不一样。(一个事务多次读取同一条数据时,另外一个发生了事务发生update,delete操作并提交了。insert操作一条新数据并不会影响刚才被读的那条数据。)。行数变化。

(读取数据一致性的描述)


image.png image.png

(锁住行)


image.png image.png

相关文章

  • 2020-11-07-Mysql(优化基础)

    1.三大范式 第一范式:确保每列的原子性(强调的是列的原子性,即列不能够再分成其他几列). 第二范式:在第一范式的...

  • 系统优化 服务优化

    **优化体系 ** 系统优化 基础必备优化: 基础服务优化ssh服务yum源配置安装常见工具时间同步:定时任务+ ...

  • 创新网络网站优化外包服务内容

    一、网站基础优化 基础优化主要是以调整网站结构、网站层次、内部标签元素、并将关键词合理分配到网站上等基础优化,主要...

  • Awesome Extra

    性能优化 性能优化模式 常见性能优化策略的总结 Spark 性能优化指南——基础篇 Spark 性能优化指南——高...

  • 冒泡算法基础到进价篇

    1、基础冒泡 2、基础优化 3、冒泡终极进价

  • spark性能调优

    [Spark性能优化指南——基础篇][Spark性能优化指南——高级篇]

  • vue css绑定和定时器includes优化

    基础知识 定时器小优化 判断语句优化

  • app性能优化(转)

    Android面试——APP性能优化Android应用性能优化基础知识。布局优化避免OverDraw过渡绘制优化布...

  • SEO高级优化技巧

    SEO高级优化技巧 基础优化更多的是关于技术方面的...

  • Day10-操作系统基础优化(2)

    课程知识介绍:系统基础优化部分 系统用户优化 系统命令提示符(shell) 系统安全优化 系统字符集优化 时间优化...

网友评论

      本文标题:2020-11-07-Mysql(优化基础)

      本文链接:https://www.haomeiwen.com/subject/tmxcbktx.html