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
阅读全文
给大表加索引: 1、创建一张和原表结构一样的空表,只是表名不一样 create table tb_name_tmp like tb_name; 2、把新建的空表非主键索引都删掉,因为这样在往新表导数据的时候效率会很快(因为除了必要的主键以外,不用再去建立其它索引数据了)......
 江枫渔火
 2022-09-07
 933
阅读全文
MySQL 主从相关 一、三种粒度 1.statement:会将对数据库的操作写到 binlog 中。 2.row:会将每一条数据的变化写到 binlog 中。 3.mixed:statement 和 row混合。Mysql觉得什么时候写statement 的binlog ,什么时候写row 格式的binlog......
 江枫渔火
 2022-07-18
 24
阅读全文