From 086e5bd69c66be4a6d817a61046c161739577f10 Mon Sep 17 00:00:00 2001 From: Estom Date: Thu, 2 Sep 2021 13:26:53 +0800 Subject: [PATCH] =?UTF-8?q?mysql=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 数据库/MySQL/附录3 MySQL索引类型.md | 19 +++++++++++++++++++ 数据库/MySQL/附录6 MySQL分库分表.md | 2 +- 数据库/数据库.xmind | Bin 29685 -> 33366 bytes 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/数据库/MySQL/附录3 MySQL索引类型.md b/数据库/MySQL/附录3 MySQL索引类型.md index 6e0fb4cb..ab79bede 100644 --- a/数据库/MySQL/附录3 MySQL索引类型.md +++ b/数据库/MySQL/附录3 MySQL索引类型.md @@ -89,6 +89,24 @@ CREATE TABLE `table` ( ); ``` +主键设计的原则: +1. 一定要显式定义主键 +2. 采用与业务无关的单独列 +3. 采用自增列 +4. 数据类型采用int,并尽可能小,能用tinyint就不用int,能用int就不用bigint +5. 将主键放在表的第一列 + + +这样设计的原因: +1. 在innodb引擎中只能有一个聚集索引,我们知道,聚集索引的叶子节点上直接存有行数据,所以聚集索引列尽量不要更改,而innodb表在有主键时会自动将主键设为聚集索引,如果不显式定义主键,会选第一个没有null值的唯一索引作为聚集索引,唯一索引涉及到的列内容难免被修改引发存储碎片且可能不是递增关系,存取效率低,所以最好显式定义主键且采用与业务无关的列以避免修改;如果这个条件也不符合,就会自动添加一个不可见不可引用的6byte大小的rowid作为聚集索引 + + +2. 需采用自增列来使数据顺序插入,新增数据顺序插入到当前索引的后面,符合叶子节点的分裂顺序,性能较高;若不用自增列,数据的插入近似于随机,插入时需要插入到现在索引页的某个中间位置,需要移动数据,造成大量的数据碎片,索引结构松散,性能很差 + +3. 在主键插入时,会判断是否有重复值,所以尽量采用较小的数据类型,以减小比对长度提高性能,且可以减小存储需求,磁盘占用小,进而减少磁盘IO和内存占用;而且主键存储占用小,普通索引的占用也相应较小,减少占用,减少IO,且存储索引的页中能包含较多的数据,减少页的分裂,提高效率 + +4. 将主键放在表的第一列好像是习惯,原因我也不知道,试了下是可以放在其他列的...... + ### 组合索引 @@ -207,3 +225,4 @@ select username, score from t1 where username = '小明' > MySQL中常用的索引结构有:B+树索引和哈希索引两种。目前建表用的B+树索引就是BTREE索引。 > 在MySQL中,MyISAM和InnoDB两种存储引擎都不支持哈希索引。只有HEAP/MEMORY引擎才能显示支持哈希索引。 + diff --git a/数据库/MySQL/附录6 MySQL分库分表.md b/数据库/MySQL/附录6 MySQL分库分表.md index eb6d7634..fd2674f9 100644 --- a/数据库/MySQL/附录6 MySQL分库分表.md +++ b/数据库/MySQL/附录6 MySQL分库分表.md @@ -132,7 +132,7 @@ Mysql服务器之间的主从同步是基于二进制日志BINLOG机制,主服 5. slave还会创建一个SQL线程,从Relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db. -### 主从同步方法 +### 主从同步机制 ![](image/2021-09-02-10-14-13.png) diff --git a/数据库/数据库.xmind b/数据库/数据库.xmind index 88118c3fa19fe90e838cfc8c41fd866de2461eb9..821e877e8f84d2605430a1e09ce79067eed14d07 100644 GIT binary patch delta 15350 zcmZvDWlSAF(=|@HxVsd0cZcHc?pmB8#ksh3#s=yCRPp6s73Avg z^3WHQ{16bGbr29p|0)BTJ2|>pI=V62x;i;t`q?DstfU?pt9}=bW9fbU?S$vdNetK3 z<2EfJ4QywqB&m>7r?<~QkdBZM^}9spz30D;elFkOoL%(9f4shR)6GVQv;i%=J}3P54Q-01Gjn$~oLePebF6`ro@lYa)bsz1-~&1ifv&t*y7&Ekg`mpUOYO6uwH)$t$uw zmn0qh8o4l!bFm$dy`qQ?7i?_!u-Nf*=@D+eo3cAs7Q9(5OkMfYpUi+t6ctYD>B2P< z{DW&v{2Pf5pUx`qoL-U4(SFz$V)tXBZ!0(U_BmOhmJ2jm^+1(2UelniOxo>ZcmJ`l z&_(KKDAN0hDzfpn{0lw)dCEYzc=e7HvmBaKc}2YN<9*%d>2X(nLv2b*vdPXtfAh~g zNfHW#BGz>QTt*b4gP*1>1Ca=!}1CRgI$$$ zXYQ0;)$^0o=lOf{#foPHNptU?;XvfpmxDr$HMYU{M^Yo>*KN50kt?9y_7FFU27!h3 zn4F6k)`Bf?UKVa3HdfLbyRp!ch`+nF7hT&!(tiJR$X(9=W^2gZ&m2TjNZQ(xΫ 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 MC52lL_)qx%0P2r^(*OVf delta 11637 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 J?)+ci{{UYFJW2on