2929< meta property ="og:locale " content ="zh_CN ">
3030< meta property ="og:image " content ="http://simuleite.github.io/ComputerScience/%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/Source/Photo/SQL%20JOIN.jpg ">
3131< meta property ="article:published_time " content ="2024-07-26T16:00:00.000Z ">
32- < meta property ="article:modified_time " content ="2025-02-14T11:56:18.815Z ">
32+ < meta property ="article:modified_time " content ="2025-02-15T14:07:25.980Z ">
3333< meta property ="article:author " content ="SIMULEITE ">
3434< meta property ="article:tag " content ="基本操作 ">
3535< meta name ="twitter:card " content ="summary ">
143143 < div class ="sidebar-panel-container ">
144144 <!--noindex-->
145145 < div class ="post-toc-wrap sidebar-panel ">
146- < div class ="post-toc animated "> < ol class ="nav "> < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E7%B4%A2%E5%BC%95%E5%8E%9F%E7%90%86 "> < span class ="nav-text "> 索引原理</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%BC%95%E6%93%8E "> < span class ="nav-text "> 引擎</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E4%B8%BA%E4%BB%80%E4%B9%88innodb%E5%BB%BA%E8%AE%AE%E6%AF%8F%E5%BC%A0%E8%A1%A8%E5%BF%85%E9%A1%BB%E5%BB%BA%E7%AB%8B%E4%B8%BB%E9%94%AE%E5%B9%B6%E7%94%A8%E8%87%AA%E5%A2%9E%E6%95%B4%E5%9E%8B "> < span class ="nav-text "> 为什么InnoDB建议每张表必须建立主键,并用自增整型?</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#b%E6%A0%91%E5%A6%82%E4%BD%95%E6%94%AF%E6%8C%81%E8%8C%83%E5%9B%B4%E6%9F%A5%E8%AF%A2 "> < span class ="nav-text "> B+树如何支持范围查询</ span > </ a > </ li > </ ol > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E4%BA%8B%E5%8A%A1 "> < span class ="nav-text "> 事务</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%8E%9F%E5%AD%90%E6%80%A7-atomicity "> < span class ="nav-text "> 原子性 Atomicity</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E4%B8%80%E8%87%B4%E6%80%A7-consistency "> < span class ="nav-text "> 一致性 Consistency</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E9%9A%94%E7%A6%BB%E6%80%A7-isolation "> < span class ="nav-text "> 隔离性 Isolation</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E6%8C%81%E4%B9%85%E6%80%A7-durability "> < span class ="nav-text "> 持久性 Durability</ span > </ a > </ li > </ ol > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E4%BD%BF%E7%94%A8 "> < span class ="nav-text "> 使用</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%90%AF%E5%8A%A8%E6%95%B0%E6%8D%AE%E5%BA%93 "> < span class ="nav-text "> 启动数据库</ span > </ a > </ li > </ ol > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E7%99%BB%E5%BD%95%E6%95%B0%E6%8D%AE%E5%BA%93 "> < span class ="nav-text "> 登录数据库</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%AF%BC%E5%85%A5%E6%95%B0%E6%8D%AE%E5%BA%93 "> < span class ="nav-text "> 导入数据库</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E6%95%B0%E6%8D%AE%E5%BA%93 "> < span class ="nav-text "> 数据库</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E8%A1%A8 "> < span class ="nav-text "> 表</ span > </ a > </ li > </ ol > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E6%9F%A5%E8%AF%A2 "> < span class ="nav-text "> 查询</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E6%8E%92%E5%BA%8F "> < span class ="nav-text "> 排序</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E7%AD%9B%E9%80%89 "> < span class ="nav-text "> 筛选</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E9%80%BB%E8%BE%91%E6%93%8D%E4%BD%9C%E7%AC%A6 "> < span class ="nav-text "> 逻辑操作符</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E6%8F%92%E5%85%A5 "> < span class ="nav-text "> 插入</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E6%9B%B4%E6%96%B0 "> < span class ="nav-text "> 更新</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E5%88%A0%E9%99%A4 "> < span class ="nav-text "> 删除</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E8%81%94%E7%BB%93 "> < span class ="nav-text "> 联结</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E5%AE%89%E8%A3%85 "> < span class ="nav-text "> 安装</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%8E%8B%E7%BC%A9%E5%8C%85%E5%AE%89%E8%A3%85 "> < span class ="nav-text "> 压缩包安装</ span > </ a > </ li > </ ol > </ li > </ ol > </ div >
146+ < div class ="post-toc animated "> < ol class ="nav "> < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E7%B4%A2%E5%BC%95%E5%8E%9F%E7%90%86 "> < span class ="nav-text "> 索引原理</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%BC%95%E6%93%8E "> < span class ="nav-text "> 引擎</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E4%B8%BA%E4%BB%80%E4%B9%88innodb%E5%BB%BA%E8%AE%AE%E6%AF%8F%E5%BC%A0%E8%A1%A8%E5%BF%85%E9%A1%BB%E5%BB%BA%E7%AB%8B%E4%B8%BB%E9%94%AE%E5%B9%B6%E7%94%A8%E8%87%AA%E5%A2%9E%E6%95%B4%E5%9E%8B "> < span class ="nav-text "> 为什么InnoDB建议每张表必须建立主键,并用自增整型?</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#b%E6%A0%91%E5%A6%82%E4%BD%95%E6%94%AF%E6%8C%81%E8%8C%83%E5%9B%B4%E6%9F%A5%E8%AF%A2 "> < span class ="nav-text "> B+树如何支持范围查询</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E8%81%94%E5%90%88%E4%B8%BB%E9%94%AE%E7%B4%A2%E5%BC%95%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF%E6%9C%80%E5%B7%A6%E5%89%8D%E7%BC%80%E5%8E%9F%E5%88%99 "> < span class ="nav-text "> 联合主键索引,为什么是最左前缀原则?</ span > </ a > </ li > </ ol > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E4%BA%8B%E5%8A%A1 "> < span class ="nav-text "> 事务</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%8E%9F%E5%AD%90%E6%80%A7-atomicity "> < span class ="nav-text "> 原子性 Atomicity</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E4%B8%80%E8%87%B4%E6%80%A7-consistency "> < span class ="nav-text "> 一致性 Consistency</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E9%9A%94%E7%A6%BB%E6%80%A7-isolation "> < span class ="nav-text "> 隔离性 Isolation</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E6%8C%81%E4%B9%85%E6%80%A7-durability "> < span class ="nav-text "> 持久性 Durability</ span > </ a > </ li > </ ol > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E4%BD%BF%E7%94%A8 "> < span class ="nav-text "> 使用</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%90%AF%E5%8A%A8%E6%95%B0%E6%8D%AE%E5%BA%93 "> < span class ="nav-text "> 启动数据库</ span > </ a > </ li > </ ol > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E7%99%BB%E5%BD%95%E6%95%B0%E6%8D%AE%E5%BA%93 "> < span class ="nav-text "> 登录数据库</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%AF%BC%E5%85%A5%E6%95%B0%E6%8D%AE%E5%BA%93 "> < span class ="nav-text "> 导入数据库</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E6%95%B0%E6%8D%AE%E5%BA%93 "> < span class ="nav-text "> 数据库</ span > </ a > </ li > < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E8%A1%A8 "> < span class ="nav-text "> 表</ span > </ a > </ li > </ ol > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E6%9F%A5%E8%AF%A2 "> < span class ="nav-text "> 查询</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E6%8E%92%E5%BA%8F "> < span class ="nav-text "> 排序</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E7%AD%9B%E9%80%89 "> < span class ="nav-text "> 筛选</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E9%80%BB%E8%BE%91%E6%93%8D%E4%BD%9C%E7%AC%A6 "> < span class ="nav-text "> 逻辑操作符</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E6%8F%92%E5%85%A5 "> < span class ="nav-text "> 插入</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E6%9B%B4%E6%96%B0 "> < span class ="nav-text "> 更新</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E5%88%A0%E9%99%A4 "> < span class ="nav-text "> 删除</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E8%81%94%E7%BB%93 "> < span class ="nav-text "> 联结</ span > </ a > </ li > < li class ="nav-item nav-level-1 "> < a class ="nav-link " href ="#%E5%AE%89%E8%A3%85 "> < span class ="nav-text "> 安装</ span > </ a > < ol class ="nav-child "> < li class ="nav-item nav-level-2 "> < a class ="nav-link " href ="#%E5%8E%8B%E7%BC%A9%E5%8C%85%E5%AE%89%E8%A3%85 "> < span class ="nav-text "> 压缩包安装</ span > </ a > </ li > </ ol > </ li > </ ol > </ div >
147147 </ div >
148148 <!--/noindex-->
149149
@@ -225,7 +225,7 @@ <h1 class="post-title" itemprop="name headline">
225225 < i class ="far fa-calendar-check "> </ i >
226226 </ span >
227227 < span class ="post-meta-item-text "> 更新于</ span >
228- < time title ="修改时间:2025-02-14 19:56:18 " itemprop ="dateModified " datetime ="2025-02-14T19:56:18 +08:00 "> 2025-02-14 </ time >
228+ < time title ="修改时间:2025-02-15 22:07:25 " itemprop ="dateModified " datetime ="2025-02-15T22:07:25 +08:00 "> 2025-02-15 </ time >
229229 </ span >
230230
231231
@@ -252,6 +252,10 @@ <h2 id="为什么innodb建议每张表必须建立主键并用自增整型"><a c
252252如果不自增,而是随机添加,那么新增的数很可能会触发分裂、平衡,造成冗余索引。</ p >
253253< h2 id ="b树如何支持范围查询 "> < a class ="markdownIt-Anchor " href ="#b树如何支持范围查询 "> </ a > B+树如何支持范围查询</ h2 >
254254< p > Hash结构的索引,不支持范围查询;而B+树只用找到两端,然后顺着指针拿到所有节点就好了(叶节点是双指针连接的,并且有序)。</ p >
255+ < h2 id ="联合主键索引为什么是最左前缀原则 "> < a class ="markdownIt-Anchor " href ="#联合主键索引为什么是最左前缀原则 "> </ a > 联合主键索引,为什么是最左前缀原则?</ h2 >
256+ < p > 最左前缀原则:不能跳过左边的索引,必须从最左边索引开始,逐步增加条件。< br />
257+ 因为联合主键索引底层的B+树就是按照主键顺序排序的,会从左到右进行比较;如果跳过了左边的主键,那就找不到了,因为第二个主键不一定是排好序的!。< br />
258+ 首先按照第一个主键排序,然后按照第二个主键排序。在同一个主键内,二级主键是有序的,但是跳出这个圈,就是无序的。</ p >
255259< h1 id ="事务 "> < a class ="markdownIt-Anchor " href ="#事务 "> </ a > 事务</ h1 >
256260< h2 id ="原子性-atomicity "> < a class ="markdownIt-Anchor " href ="#原子性-atomicity "> </ a > 原子性 Atomicity</ h2 >
257261< figure class ="highlight sql "> < table > < tr > < td class ="code "> < pre > < span class ="line "> BUSINESS</ span > < br > < span class ="line "> < span class ="keyword "> sql</ span > 语句< span class ="number "> 1</ span > </ span > < br > < span class ="line "> < span class ="keyword "> sql</ span > 语句< span class ="number "> 2</ span > </ span > < br > < span class ="line "> < span class ="keyword "> COMMIT</ span > </ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
0 commit comments