文章分类 -  MySQL高级

mysql优化
摘要:十、锁的定义及分类 1.锁的定义 锁是用来协调在多个线程并发访问同一共享资源时带来的安全问题。如果我们频繁的使用锁,在并发非常大的时候会带来性能问题。 频繁用锁必然会造成性能问题,但不用锁,又会造成安全问题,MySQL在安全问题和性能方面是如何做权衡的。MySQL并发性非常好,它是如何解决安全问题呢 阅读全文
posted @ 2021-07-22 10:11 牛奶配苦瓜 阅读(101) 评论(0) 推荐(0) 编辑
摘要:九、SQL优化实战 SQL语句做查询时如何提升性能是我们时常要关注的。我们在写SQL有很多的场景,接下来逐一分析: 1.Order by优化 在Order by中,如果排序会造成文件排序(在磁盘中完成排序,这样的性能会比较差),那么就说明sql没有命中索引,怎么解决?可以使用最左前缀法则,让排序遵循 阅读全文
posted @ 2021-07-22 10:08 牛奶配苦瓜 阅读(247) 评论(0) 推荐(0) 编辑
摘要:七、Explain——SQL优化神器 1.Explain的介绍 在完成工程结构的优化之后,数据库、表、表中的字段及表的索引,都能够支持海量数据的快速查找。但是查找依然需要通过SQL语句来实现,因此性能优秀的SQL语句是能够走索引,快速查找到数据的。性能不Ok的SQL语句,就不会走索引,导致全表扫描。 阅读全文
posted @ 2021-07-22 10:05 牛奶配苦瓜 阅读(91) 评论(0) 推荐(0) 编辑
摘要:六、SQL优化 即使我们在创建数据库表时为表创建了索引。但是在实际使用的sql语句却没有命中索引而造成了慢查询,从而导致整个接口的性能是非常差的。 1.为什么要做SQL优化 防止慢查询,导致接口性能较差。 接口性能1秒以内,甚至200ms以内。 数据库的名称不规范,表的结构不规范,导致使用时出现了问 阅读全文
posted @ 2021-07-22 10:01 牛奶配苦瓜 阅读(29) 评论(0) 推荐(0) 编辑
摘要:四、关于索引的面试题 1.问题一:为什么非主键索引的叶子节点存放的数据是主键值 两个原因: 节约空间:冗余存放相同的数据在多个索引树会造成空间的浪费 简化修改数据时的操作:如果冗余放相同数据到多个索引树上,那么在数据进行修改时,相关的每个索引树都要修改数据,而不是只改一份。 2.问题二:为什么Inn 阅读全文
posted @ 2021-07-22 09:58 牛奶配苦瓜 阅读(137) 评论(0) 推荐(0) 编辑
摘要:三、InnoDB和MyISAM的区别 之前已经看到,InnoDB把数据和索引存放在一个文件里,MyISAM把数据和文件分开存储。 1.MyISAM——非聚集索引 因为MyISAM把索引和数据分开两个文件来存储。因此在查找索引后,索引的叶子节点存放的是该条记录在另一个文件中的对应的磁盘地址。所以,My 阅读全文
posted @ 2021-07-22 09:57 牛奶配苦瓜 阅读(46) 评论(0) 推荐(0) 编辑
摘要:二、数据结构 我们在上一章了解到,通过索引查数据,性能是非常快,且也得知,索引实际上是数据的目录。因此要查数据走索引,也必须得先查索引。所以,我们的问题就是为什么在查索引的时候速度是这么快的,这就跟索引使用了哪种数据结构有关系。 1. 线性表 1)顺序存储的线性表 存放数据的位置是连续的。 2)链式 阅读全文
posted @ 2021-07-22 09:55 牛奶配苦瓜 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 一、索引的概述 1.索引是什么? 在千万级别的数据中进行查找,速度是非常快的。这就需要借助MySQL的索引来实现。 MySQL中的索引,相当于是给数据创建了一个目录。该目录的作用,是当有查询该目录时,可以快速定位数据所在的磁盘位置而进行快速的查询。如果不走目录(索引)的话,那么就需要进行磁盘的多 阅读全文
posted @ 2021-07-22 09:53 牛奶配苦瓜 阅读(86) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示