2月13日

索引分类:

  1. 按数据结构分类:
    • B - 树索引:是平衡的多路搜索树,节点存储索引键值和指针。特点是查询时间复杂度稳定在对数级别,常用于范围和等值查询。适用于各类查询,尤其是范围查找场景。
    • B + 树索引:B - 树变体,非叶子节点只存索引键值,数据存于叶子节点且叶子节点用指针相连。更适合范围查询,提高了查询效率。是数据库常用索引结构,如MySQL的InnoDB存储引擎使用。
    • 哈希索引:用哈希函数将索引键值转为哈希码定位数据行。查找速度快,时间复杂度O(1),适用于等值查询,但不支持范围查询。适用于快速等值匹配场景,如缓存系统键值查找。
  2. 按物理存储分类:
    • 聚集索引:决定表中数据物理存储顺序,一个表只能有一个。查询效率高,范围查询和排序快,但插入、删除和更新可能导致数据物理移动,开销大。常将主键设为聚集索引,适用于常进行范围查询和排序的表。
    • 非聚集索引:不改变数据物理存储顺序,单独创建索引结构存储索引键值和指针,一个表可有多 个。创建和维护成本低,对插入、删除和更新影响小,但查询可能需二次查找。适用于常进行特定列查询,无需对整个表排序的场景。
  3. 按逻辑功能分类:
    • 唯一索引:要求索引列值唯一,可聚集或非聚集。保证数据唯一性,提高查询效率。用于需保证数据唯一性的列,如用户名、身份证号等。
    • 复合索引:由多个列组成,数据库根据列组合排序和存储索引数据。可提高多列查询效率,减少索引数量,但要注意索引列顺序。适用于常同时根据多列查询的场景。
    • 全文索引:用于文本数据全文搜索,对文本分词建立索引。可快速定位含特定关键词的文本,支持模糊和语义查询。创建和维护成本高,占用存储空间多。适用于需全文搜索的场景,如新闻、商品描述搜索。

常见聚合函数及示例

  • COUNT:计算行数
-- 总行数
SELECT COUNT(*) FROM TableName;
-- 某列非空行数
SELECT COUNT(ColumnName) FROM TableName WHERE ColumnName IS NOT NULL;
  • SUM:计算数值总和
SELECT SUM(ColumnName) FROM TableName;
  • AVG:计算数值平均值
SELECT AVG(ColumnName) FROM TableName;
  • MAX:找出最大值
SELECT MAX(ColumnName) FROM TableName;
  • MIN:找出最小值
SELECT MIN(ColumnName) FROM TableName;
posted @ 2025-02-13 20:20  世界改变程序员  阅读(14)  评论(0)    收藏  举报