网上都这样说mysql的索引原则:分组字段或者排序字段应该创建索引,两个表的连接字段应该创建索引

网上都这样说mysql的索引原则:分组字段或者排序字段应该创建索引,两个表的连接字段应该创建索引,第1张

分组字段:查询的时候grouo by后面的字段就是分组字段

排序字段:查询的时候order by后面的字段就是分组字段

两个表的连接字段也就是外键,当每个表的数据都很多时,查询时连接起来的表就很大,这个时候为这个外键增加一个索引能大大缩短查询时间

同理前两种情况也是为了在大表查询的时候缩短时间

ps:为什么增加索引能减少查询时间呢?因为没有索引的话查询的时候只能一行数据一行数据的遍历,而有了索引就相当于为数据集建立了一个B+树或者B-树(一种数据结构),能大大减少查询中遍历数据集时的循环次数。B+和B-树过于复杂,不在祥述,可以自行百度。总之,索引简而言之就是以存储空间换时间。当数据太多,能够显著的减少查询的时间,这个时候耗费一点空间建立索引还是很值得的。

MySQL中使用 GROUP BY 对数据进行分组,GROUP BY从字面意义上理解就是根据'BY'指定的规则对数据进行分组, 所谓分组就是将一个'数据集'划分成若干个'子区域',然后针对若干个'小区域'进行数据处理 。基本语法形式为:

字段值为进行分组时所依据的列名称, “HAVING <条件表达式>” 指定满足表达式限定条件的结果将被显示。

GROUP BY关键字通常和集合函数一起使用,例如:MAX()、MIN()、COUNT()、SUM()、AVG()。即把数据分为多个逻辑组,并对每个组进行集合计算。

WHERE 子句过滤行,在数据分组前过滤;HAVING 子句过滤分组,在数据分组后过滤。WHERE排除的行不包括在分组里,且HAVING支持所有WHERE *** 作符。

使用GROUP BY可以对多个字段进行分组,根据多字段的值来进行层次分组,分组从左到右。

注意事项:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7294746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存