个人简介

Echo Blog


江湖无名 安心练剑
  • 数据库索引-13-实际工作中的索引优化
    mysql 的分页优化 现象 mysql learn-01-mysql limit 的分页性能很差问题及其解决方案 解决方案 返回给前端对应的 lastId 然后通过 lastId 做对应的主键过滤,子查询。 id 走的是主键聚合索引,会比较快。 优化方案1 SELECT * FROM tableName WHERE id >= (SELECT id FROM tabl...
    2019-01-02 02:17:00 | SQL
  • 数据库索引-11-Mysql 索引执行流程 主键索引 普通索引 组合索引+最左匹配原则 覆盖索引+索引下推
    MySQL 的索引是如何执行的? B+ 树在具体的引擎中是怎么发挥作用的呢? 本系列主要说一下 InnDB 索引。 主键索引 主键索引又叫聚簇索引,它使用 B+ 树构建,叶子节点存储的是数据表的某一行数据。 当表没有创建主键索引是,InnDB 会自动创建一个 ROWID 字段用于构建聚簇索引。 规则如下: 在表上定义主键 PRIMARY KEY,InnoDB 将...
    2019-01-02 02:17:00 | SQL
  • 数据库索引-11-Mysql 为什么选择 B+ Tree 作为索引?
    索引概述 定义:索引是存储引擎用于快速找到记录的一种数据结构。 举例说明:如果查找一本书中的某个特定主题,一般会先看书的目录(类似索引),找到对应页面。 在MySQL,存储引擎采用类似的方法使用索引,高效获取查找的数据。 索引的优缺点 优点 提高查询语句的执行效率,减少 IO 操作的次数 创建唯一性索引,可以保证数据库表中每一行数据的唯一性 加了索引的列会进行排序(一本书的章...
    2019-01-02 02:17:00 | SQL
  • 数据库索引-10-Mysql count(*),count(字段),count(1)的区别
    总数 count select count(*)应该是一个比较常用的语句,用来统计记录行数。 但是,慢慢地你会发现,这个语句越来越慢了,为什么呢? count 的常见问题 关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT。 但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。 不信的话请尝试回答...
    2019-01-02 02:17:00 | SQL
  • 数据库索引-09-MySQL Index Merge 索引合并
    索引合并 本文翻译自MySQL 8.0 Reference Manual 8.2.1.3 Index Merge Optimization Index Merge访问方法(Access method)通过合并多个范围扫描并对结果进行合并,然后获取最终需要返回的行数据。合并多个索引的扫描方法仅仅支持单表访问,不可用于多表关联查询。目前支持的合并方式有并集(unions),交集(inters...
    2019-01-02 02:17:00 | SQL
  • 数据库索引-08-MySQL Index Tips
    联合索引 官方概念 MySQL可以创建复合索引(即多列索引)。一个索引最多可以包含16列。 对于某些数据类型,可以为列的前缀建立索引。 MySQL可以为测试索引中的所有列的查询使用多列索引,或者只测试第一列、前两列、前三列的查询,等等。如果在索引定义中以正确的顺序指定列,则单个复合索引可以加速同一表上的几种查询。 多列索引可以看作是排序的数组,其中的行包含通过连接索引列的值创建的值...
    2019-01-02 02:17:00 | SQL
  • 数据库索引-07-联合索引
    数据库索引 首先看一些基础知识 mysql-index b tree 问题 带着问题学习。 什么是联合索引? 如何创建? 使用时候的最佳实践 联合索引数据结构是怎么样的? 为什么有最左原则? 联合索引 联合索引又叫复合索引。 对于复合索引:Mysql从左到右的使用索引中的...
    2019-01-02 02:17:00 | SQL
  • 数据库索引-06-索引运行不好的场景
    索引不生效的场景 != 或者 <> 负向条件查询不能使用索引 实例 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 建议优化为: select * from order where status in(2,3) 在属性上进行计算不能命中索引 selec...
    2019-01-02 02:17:00 | SQL