![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
文章平均质量分 94
m0_49271078
莫在浮沙筑高台
展开
-
关于mysql的一些优化建议
概述 在使用mysql的过程中积累了一定的Sql优化 经验,比如尽量不要使用Select *、尽量使用索引等,但背后的原因是什么呢?下面对一些常见的优化建议背后的原理进行一个分析。 1、为什么尽量不要使用Select *? 磁盘IO,mysql的数据是存放在磁盘中,查询的字段越多,和磁盘交互的次数就越大,增大了磁盘IO 内存,查询结果需要加载到内存中,字段越多占用的内存越高 网络传输/带宽,数据传输量越大占用的网络资源就越多 无法高效利用索引,不能使用索引覆盖(不太可能针对所有的字段建立索引),需要进行回原创 2020-12-31 13:57:49 · 95 阅读 · 0 评论 -
数据库与缓存一致性方案
概述 缓存是实现高性能访问的利器,当缓存的数据有变化时应该先更新数据库再更新缓存?还是先更新缓存再更新数据库呢?又或者是其它什么方案?下面针对常用的缓存更新方案进行说明。 一、先更新缓存再更新数据库 为什么基本上没有人采用这种方案?个人见解如下: 更新缓存和更新数据库都有失败的可能,如果更新缓存成功而更新数据库失败,数据库里面存的还是老数据,如果缓存失效之后再从数据库读到的数据仍然是老数据,这会导致更新丢失,风险太大。 懒加载的思想。很多时候缓存不是简单从数据库取出来的值,很可能是多表联合查询计算得到的值原创 2020-11-12 20:01:58 · 92 阅读 · 0 评论 -
Mysql优化——执行计划
Mysql执行计划(基于5.7版本) 执行Explain可以获得Mysql语句的执行信息,通过分析这些信息可以为优化Sql语句的性能带来很大的帮助。Mysql 5.7版本执行explain后会输出以下12列信息。 列 说明 id 标识符,表示执行顺序,值越大越先执行,没有子查询或者关联查询值为1,值可以为null select_type 查询类型 table 访问到的表的表名 partitions 使用的哪个分区表,值为null表示不是分区表 type 访问类型 pos原创 2020-10-28 14:29:14 · 230 阅读 · 0 评论 -
Mysql各关键字的逻辑执行顺序
Mysql各关键字的逻辑执行顺序 下面的执行顺序只是一种逻辑顺序,由于Mysql优化器的作用,实际情况可能略有不同。使用explain语句可以分析sql语句的执行顺序,但也不保证准确性。 (8) SELECT (9) DISTINCT<select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition>翻译 2020-09-01 16:16:40 · 222 阅读 · 0 评论