测试文章笔记-SQL3种优化方法

SQL语句优化:

本质 :降低执行时间

**核心思路:**找到执行计划中开销较高的操作,改写SQL语句或改变表访问方式调整执行计划。

举例:

1.使用索引替代全表扫描(索引:是帮助MysQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。


总结:

让包含null值得列在检索时可以使用索引,需要将基于b树的单列索引改为复合索引,将原有索引修改为inx_code(code,0),(这里还是没有看懂,0是指什么列?还是特殊的表示手法?)再次执行查询,对user表的访问方式由全表扫描改为索引范围扫描,执行时间降至1秒之下。

"null值将使得索引失效"的原因:可能是因为code作为主键,不能为null导致。

b树单列索引:B-树索引是基于二叉树结构的。B-树索引结构有3个基本组成部分:根节点、分支节点和叶子节点。其中根节点位于索引结构的最顶端,而叶子节点位于索引结构的最底端,中间为分子节点。oracle和mongodb的索引都是B-Tree,而mysql的索引类型是B+Tree。
oracle:Oracle是大型数据库而Mysql是中小型数据库。
单列索引:只包含一个列
复合索引:包含两个或两个以上个列,与顺序有关联,窄索引指只有2个列、宽索引指有2个以上的列。

2、通过索引的有序性消除排序操作。

dec:降序排列
asc:升序排列

相关推荐
一杯奶茶¥2 小时前
c语言程序设计大学期末考试考研知识点重点笔记题库复习资料C语言重点考点题库资料合集
c语言·笔记·考研·c语言程序设计·c语言笔记
FakeOccupational4 小时前
【电路笔记 信号】传输线方程:从RLGC推导传输线特性阻抗
笔记
r_oo_ki_e_5 小时前
Java反射机制学习笔记
java·笔记·学习
Nontee6 小时前
数据类型与包装类 — 一个新手学Java的数据类型笔记
java·笔记·python
ysa0510306 小时前
【板子】树上启发式合并
数据结构·c++·笔记·算法
hengcaib6 小时前
金税四期下盐城企业财税合规技术路径:代理记账选型的技术思维
笔记
依然范特东6 小时前
深度学习入门学习笔记--感知机、神经网络
笔记·深度学习·学习
a1117767 小时前
SLAM 学习笔记(四)后端(KF BA)
笔记·学习
XGeFei8 小时前
【Django学习笔记】—— Django 高并发通俗讲解
笔记·学习·django
六点_dn8 小时前
Linux学习笔记-chmod命令
linux·笔记·学习