Blog

  • Published

    最左前缀匹配原则 联合索引,mysql会从做向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整 =和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式 索...

  • Published

    MySQL提供explain/desc命令输出执行计划,我们通过执行计划优化SQL语句

  • Published

    基本概念 索引的功能就是加速查找 mysql中的primary key,unique,联合唯一也都是索引,这些索引除了加速查找以外,还有约束的功能 常用索引 普通索引INDEX:加速查找 唯一索引: 主键索引PRIMARY KEY:加速查找+约束(不为空、不能重复) 唯一索引UNIQUE:加速查找+约束(不能重复) 联合索引: PRIMARY KEY(id,name):联合主键索引 UNIQUE(id,name):联合唯一索引 INDEX(id,name):联合普通索引 索引的两...

  • Published

    由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键。 例1: (明确指定主键,并且有此笔资料,row lock) SELECT * FROM products WHERE id='3' FOR UPDATE; SELECT * FROM produc...