为什么使用B+树作为索引 mysql存储是以页为单位的,使用时需要从磁盘加载到内存中,一般根节点都是常驻内存的,使用B+树可以存放更多数据,减少磁盘IO次数 1、 B+树的磁盘读写代价更低:......
 江枫渔火
 2022-12-24
 932
阅读全文
mysql分页 +order by 加 limit 导致出现重复? 问题: 按某个非索引字段排序(如数据更新时间)进行分页查询时会出现有重复数据,比如在limit 0,5 和limit 5,5中有数据重复出现......
 江枫渔火
 2022-10-24
 913
阅读全文
1.最左前缀匹配原则,非常重要的原则,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的顺序可以任意调整。......
 江枫渔火
 2022-10-13
 5
阅读全文
1、varchar在存取方面与char相反,它存取慢,因为长度不固定,但正因如此,不占据多余的空间,是时间换空间的做法; 2、对于varchar来说,最多能存放的字符个数为65532 总之,结合性能角度(char更快)和节省磁盘空间角度(varchar更小),具体情况还需具体来设计数据库才是妥当的做法。......
 江枫渔火
 2022-10-13
 841
阅读全文
假设现在的目标是在db1库下,复制一个跟表t相同的表r,具体的执行步骤如下: 1. 执行 create table r like t,创建一个相同表结构的空表; 2. 执行alter table r discard tablespace,这时候r.ibd文件会被删除; 3. 执行flush table t for export,这时候db1目录下会生成一个t.cfg文件; 4. 在db1目录下执行cp t.cfg r.cfg; cp t.ibd r.ibd;这两个命令(这里需要注意的是,拷贝得到的 两个文件,MySQL进程要有读写权限);......
 江枫渔火
 2022-09-09
 132
阅读全文