8个提升 SQL 性能的 Tips,每个后端都应该知道( 二 )


比如说我们有两张表 teacher 和 student , 里面的数据分别是下面

8个提升 SQL 性能的 Tips,每个后端都应该知道

文章插图
 

8个提升 SQL 性能的 Tips,每个后端都应该知道

文章插图
 
这里这两张表当中 , 存在相同的一条数据 , 就是(4 ,  马六)这一条数据 , 我们可以看看使用 UNION ALL 和 UNION 的效果
8个提升 SQL 性能的 Tips,每个后端都应该知道

文章插图
 

8个提升 SQL 性能的 Tips,每个后端都应该知道

文章插图
 
可以看到第二次的查询结果中已经少了一行 , 说明我们上面说的 UNION 会去重的逻辑是存在的 , 而且去重是全字段都相同的时候才会被去重 。
7、用精确的字段代替 *另一个比较影响性能的点是使用 * , 很多小伙伴为了省事 , 在编写查询语句的时候 , 会使用 * 来代替所有的字段 , 其实并不是说这种写法有什么问题 , 只是这种写法有点不可控 , 使用 * 表示要查询所有字段 , 当我们的表是一个很简单的表 , 而且里面的字段都是一些小字段的时候 , 使用 * 完全是可以的 。
但是如果是对于一些大表特别是有 text 这种大字段的表 , 或者是一些敏感数据的表 , 我们还使用 * 号去查询数据的话 , 就会有很大的问题了 , 一方面是有安全隐患 , 一方面还是增加磁盘 , 内存和网络的传输 , 完全得不偿失 。
8、给必要的字段增加索引索引作为数据库里面一个很重要的内容 , 相比大家都不陌生 , 给必要的字段加上索引也是很有必要的 , 除了主键索引 , 我们还可以添加聚簇索引和唯一索引 , 关于索引的内容感兴趣的可以去看看我们的这篇文章面试官问我索引为什么这快?我好像解释不清楚了 , 这里阿粉就不细说了 。
总结后端程序员除了跟服务器打交道之外最多的就是跟数据库打交道了 , 如何在数据库层面提效也是一个长久的话题 , 这也是为什么数据库能得到发展的原因 , 从关系型数据库到 NoSQL 数据库 , 从 MySQL 到 ClickHouse , 数据库行业也在长久的发展 。
来源:公众号——JAVA极客技术




推荐阅读