11.表的内外连接,索引

发布时间:2026/7/11 22:41:33
11.表的内外连接,索引 虽然可以and但是我们建议这样写思路更清楚索引就是mysql服务器运行期间的数据结构找到扇区连续读八个就把块读到了为什么是4KB和内存管理有关内存也分成4KB块为了让磁盘数据和内存数据进行更好交互所以有了页框页帧概念2.既要保证io改一个字节也要读4KB这样可以保证一次io拿更多数据3.我一次加4KB可能后半部分会用到局部性原理。提高整机效率。操作系统也很聪明可以整理我们命令进而连续访问mysql读数据读16kb操作系统都磁盘 4*4kb大小硬件上就是16*8个扇区加载到内存mysql内部可以通过fsync刷新到磁盘自己的page和操作系统的page是1:4的一个个iopage都是一个个struct page结构体对象io把外面配置搬到内存不要了把内存搬到外面。内存中用链表管理page对page管理变成对链表的增删查改为什么myql自动按主键排序方便引入页目录page*1024是page的字节包含key和指针除84就是1000多个page单个page能管理1000多个个page1360*1024*16/1024/202421M数据实际真实B数只有叶子结点用链表联系起来mysql自动生成隐藏列充当主键进行排序这种顺序性就很随机了。所有表都是索引结构。我么之前并没有按照员工主键构建索引所以查找很慢。其他数据结构为什么不行二叉搜索树很高io效率不好极端情况变成线性将所有数据放到叶子结点就是innodb默认存储表数据的存储结构还有一种misam存储引擎两种引擎不同文件mysam是非聚簇索引。太浪费空间只要有主键默认就创建了主键索引若又给其他列设置索引重新构建B 树sam直接诶只想数据记录innodb指向key。两个完全匹配才算找到这是一个B树默认使用多列第一列作为吧树名称这叫复合索引我想非常高频的通过name找到email用复合索引key值本身就是想要的值匹配到张三直接就返回qq不用回表这叫索引覆盖覆盖的主键索引不回表从左侧开始匹配qq就没法匹配可以只拿张三也可以山三qq全文索引misam,支持高并发读