??????
?????????????????????????????????MySQL???InnoDB???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????
Mysql?????????????????????Innodb????????????????????????????????????windows?????????Mysql??????data?????????????????????????????????????????????linux?????????/var/lib/mysql????????????
???????????????????????????????????????data????????????????????????????????????????????????????????????opt???frm???ibd???????????????
- db.opt????????????????????????????????????????????????????????????????????????
- demo1.frm ???t_order ????????????????????????????????????
- demo1.ibd???t_order ???????????????????????????????????????????????????????????????????????????????????????????????????ibdata1??????data?????????????????????????????????????????????????????????????????????????????????.ibd???
????????????????????????
????????????????????????????????????????????????????????????????????????
???
InnoDB????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????B+???????????????????????????????????????B+????????????????????????????????????????????????????????????
????????????InnoDB ??? B+ ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???
????????????B+??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??????I/O ??????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??????I/O???
?????????????????????????????????64???????????????InnoDB ???????????????????????? 16KB?????????????????????????????? 64*16KB= 1MB????????????????????????????????????????????????????????????????????????????????????I/O???????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???
Innodb???????????????????????????????????????????????????????????????InnoDB ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
- InnoDB ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
- ??????????????????????????? 16KB??????????????????????????? 16KB ????????????????????????
- ?????? InnoDB ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 16K ????????????????????????
???
MySQL??????????????? row??????????????????????????????????????????????????? COMPACT???????????????????????????????????????????????????????????????????????????????????????????????????
InnoDB ???????????????
????????????????????????????????????????????????????????????????????????
InnoDB ????????????????????? 4 ???????????????????????? Redundant???Compact???Dynamic??? Compressed ???????????????????????????????????????????????????????????????????????????
Redundant ??????????????????????????? MySQL 5.0 ??????????????????????????????????????????????????????????????????????????????????????????
Compact ????????????MySQL 5.0 ??????????????????MySQL5.1???????????????????????????Compact??????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Dynamic ??? Compressed ???????????????????????? Compact ?????????????????? ????????????????????????Compact?????? ???MySQL5.7 ??????????????????????????? Dynamic ????????????
Compact ???????????????
?????????????????????Compact???Dynamic ??? Compressed????????????????????????Compact??????????????????????????????????????????Compact???????????????????????????????????????
???????????????????????????Compact????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????
??????????????????????????????????????????????????????????????????????????????NULL???????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????? Compact???????????????????????????????????????????????????????????????
sql????????????CREATE TABLE `demo1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`col1` varchar(45) COLLATE utf8_bin DEFAULT NULL,
`col2` varchar(45) COLLATE utf8_bin DEFAULT NULL,
`col3` int(11) DEFAULT NULL,
`col4` char(5) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=ascii ROW_FORMAT=COMPACT;
????????????????????????demo1?????????????????????????????????ascii?????????????????????????????????1???????????????????????????
1????????????????????????
??????VARCHAR???TEXT???BLOB????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????COMPACT????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????
???demo1???????????????????????????????????????????????????????????????????????????????????? id???col3(int)???col(char)??????????????????????????????
- clo1?????????varchar ?????????zs????????????????????????????????????????????? 0x02???
- clo2?????????varchar ?????????lsa????????????????????????????????????????????? 0x03???
????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? CPU Cache Line ??????????????????????????? CPU Cache ????????????
2???NULL?????????
- ??????????????????null?????????????????????null?????????
- null??????????????????bit?????????????????????????????????????????????????????????bit????????????????????????
- ????????????null???bit??????1????????????0
- null ????????????????????????????????????????????????1??????8?????????????????????????????????????????????????????????????????????????????????????????? 0
???????????????null???????????????????????????1????????????????????????????????????9?????????????????????null?????????null?????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????null???????????????null??????null???????????????????????????????????????????????????demo1???????????????????????????id??????????????????null?????????????????????????????????null???????????????8??????????????????????????????null??????????????????
??????????????????
??????????????????
??????????????????
3??????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????
- delete_flag ??????????????? 0????????????1???????????????????????? detele ????????????????????????????????????????????????????????????????????????????????? delete_flag ????????? 1??? (???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????)
- next_record?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
- record_type?????????????????????????????????0????????????????????????1?????????B+???????????????????????????2?????????????????????(Infimum)???3?????????????????????(Supremum)
?????????????????????
????????????????????? row_id???trx_id???roll_ptr ??????????????????????????????????????????????????????Mysql???MVCC?????????????????????????????????
- row_id????????????????????????????????????????????????????????????????????? row_id ????????????????????????????????????????????????????????????????????????InnoDB ????????????????????? row_id ???????????????row_id???????????????????????? 6 ????????????
- trx_id???????????????????????????/???????????????????????????????????? ID??? trx_id????????????????????? 6 ????????????
- roll_ptr???????????????????????????????????????????????????????????????roll_ptr ????????????????????? 7 ????????????
????????????????????????????????????????????????????????????????????????
??????
????????????????????????InnoDB???????????????????????????????????????????????????????????????????????????????????????
1????????????????????? TEXT???BLOBs ?????????????????????????????? 65535 ??????????????????????????????????????????
2?????????????????????????????????????????????16kb???16384??????????????????65535 ?????????
3?????????????????????????????????????????????not null???
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????