mysql索引(b+tree)小记

索引:快速检索的数据结构,缺点是插入时要创建索引树,所以索引不能太多

1.hash O(1)

时间复杂度低
有冲突,不支持范围查询,不支持排序

2.二叉树BST 平衡树:O(logn)

缺点:当树不平衡时,相对于没有索引

3.红黑数

相对二叉树,相对平衡
插入逐渐增大时,也会有右倾,也不是很平衡

4.b+tree

多路自平衡搜索树,解决红黑树和二叉树的缺点
Degree(3–>7)
底部是链表
天然契合innoDb的缓存(index page),减少io次数(利用空间局部性)

mysql索引:(引擎:表级别的)

myISAM引擎(非聚集索引)

frm文件:创建表的文件,
myd文件:表的数据文件
myi:表的索引文件
非聚集就是索引和数据不在同一个文件
树的子节点,存的是数据的物理地址

innoDB引擎(聚集索引)(锁级别高,支持事务)

frm文件:创建表的文件
idb文件:索引+数据
聚集就是索引和数据在同一个文件
主键索引树的子节点,存的是数据内容
非主键索引树的子节点,存的是数据主键(偷懒性:降低存储空间,减少索引的创建,提高插入效率)

重复度高的字段,不建议用索引,原因是用不了mysql缓存,io次数没有变

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强制消除Xcode警告的方法

比如我已经知道某行会报警告了,但是代码有这么写的道理,实在不想看到警告,可以用下面这个宏把这几行代码包住,就可以消除警告了。#pragma clang diagnostic push#pragma clang diagnostic ignored "-Wunused-variable"/…

springMVC 源码级别总结原理,DispatcherServlet核心方法

前言 springMVC自我总结 本次maven: <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.…

SQLite3中的数据类型

一、概述 大多数的数据库引擎&#xff08;到现在据我们所知的除了sqlite的每个sql数据库引擎&#xff09;都使用静态的、刚性的类型&#xff0c;使用静态类型&#xff0c;数据的类型就由它的容器决定&#xff0c;这个容器是这个指被存放的特定列。 Sqlite使用一个更一般的动态类…

一个java工程师必知的安全意识(信息传输篇)

我们在遇到涉及用户密码&#xff0c;用户联系方式&#xff0c;身份证信息等敏感字段的时候&#xff0c;一般的处理方式是&#xff1a; 1.传输使用密文&#xff0c;拒绝明文传输用户密码&#xff0c;推荐明文加盐加密&#xff0c;后台再解密 比如要传输的明文是123456的明文密…

关于iOS7里的JavaScriptCore framework

在iOS7沸沸扬扬的扁平化论战之外&#xff0c;WWDC 2013还是公布了很多让开发者小兴奋的点&#xff0c;其中包括多任务加强支持background fetch和transfer&#xff0c;近场通信的AirDrop和p2p&#xff0c;以及游戏控制器和游戏中心的加强&#xff1b;当然还包括了让web开发同学…

[nginx报错]---unknown directive chunkin in /XXXXX/XXXXXX:XX的几种解决方式

问题&#xff1a; nginx报错:unknown directive “chunkin” in /XXXXX/XXXXXX:XX 解决&#xff1a; 当出现unknown directive&#xff0c;一般有个反应&#xff0c;就是nginx中&#xff0c;要么配置格式不对&#xff0c;要么多了什么东西&#xff0c;要么就是有不支持的语法…

[数据库] ------ mysql 执行计划

mysql 执行计划 简单来说&#xff0c;mysql整体架构分为三块&#xff1a;应用层&#xff0c;逻辑层&#xff0c;物理层 应用层&#xff1a;负责与客户端交互&#xff0c;建立连接&#xff0c;返回数据&#xff0c;响应请求。 逻辑层&#xff1a;负责查询处理&#xff0c;事务管…

[数据库] ------ mysql规范

mysql规范&#xff1a; mysql优化的第一步&#xff0c;就是规范&#xff0c;国有国法&#xff0c;家有家规&#xff0c;一个团队在一起开发&#xff0c;也一定要有一套明确的规范来相互制约&#xff0c;下面这些规范只是作为一个互联网行业的建议&#xff0c;我相信一个团队最…

深入浅出Fetch API

多年来&#xff0c;XMLHttpRequest一直是web开发者的亲密助手。无论是直接的&#xff0c;还是间接的&#xff0c; 当我们谈及Ajax技术的时候&#xff0c;通常意思就是基于XMLHttpRequest的Ajax&#xff0c;它是一种能够有效改进页面通信的技术。 Ajax的兴起是由于Google的Gmail…

[设计模式] ------ 策略模式

策略模式 它定义了算法家族&#xff0c;分别封装起来&#xff0c;让他们直接可以互相替换&#xff0c;此模式让算法的变化&#xff0c;不会影响到使用算法的客户 其实很简单&#xff0c;可能很多人都用到了&#xff0c;只不过还不知道这就是策略模式而已。 比如定义一个接口A…

OC语法简化

很多刚从其他编程语言转到Objective-C的同学看到长长的函数名会感到崩溃&#xff0c;这种语法让消息的传递像一个英语句子&#xff0c;大大增强了可读性。比如你想初始化一个浮点数&#xff0c;需要这么写&#xff1a; NSNumber value [NSNumber numberWithFloat:123.45f];从这…

[设计模式] ------ 简单工厂模式

简单工厂模式 不同类型下创建对应的不同的对象&#xff0c;得到不同的结果&#xff0c;就叫简单生产模式 比如 定义一个接口&#xff0c;叫A&#xff0c;里面有方法a&#xff0c;返回int类型 类B1实现A接口&#xff0c;也实现a方法&#xff0c;里面做的是加法运算 类B2实现…

Podfile语法

一、Podfile Podfile文件详细描述了一个或多个工程中targets的依赖关系。Podfile会默认创建一个隐式的目标链接到工程中用户的第一个target&#xff0c;名称为“default”。 一个Podfile可以非常简单: pod AFNetworking, ~> 1.0 也可以配置的复杂一点,如下: source https:/…

[设计模式] ------ 模板模式

模板模式 模板模式&#xff0c;定义一个操作中的算法的骨架&#xff0c;而将一些步骤延迟到子类中&#xff0c;模板方法使得子类可以不改变一个算法的结构&#xff0c;就可以重定义该算法的某些特定步骤 一般是定义一个抽象类&#xff0c;有抽象方法&#xff0c;有骨架方法&a…

获取本地沙盒文件的MIMEType

通过发送一个基于本地文件的URL请求&#xff0c;从响应对象中获取MIMEType值。代码如下&#xff1a;NSString *path [[NSBundle mainBundle] pathForResource:"测试文件"ofType:"pdf"]; //创建本地文件URL NSURL *url [NSURL fileURLWithPath:path]; //创…

第19章总结

一.Java绘图类 1.Graphics类 Graphics类是所有图形上下文的抽象基类&#xff0c;它允许应用程序在组件以及闭屏图像上进行绘制。Graphics类封装了Java支持的基本绘图操作所需的状态信息&#xff0c;主要包括颜色、字体、画笔、文本、图像等。 2.Graphics2D类 Graphics2…

如何写一个数据库中间件以及需要准备的知识储备

什么是数据库中间件 1.透明化使用方无感知&#xff0c;或者尽量少感知。通过现有的接入端接入已有服务 2.增量服务不改变数据库本身功能的前提下&#xff0c;提供额外的功能与服务一个原则不破坏原有逻辑&#xff0c;并且让用户基于之前的经验可以快速上手接入端协议的选择 1.…

HTTP断点续传

一、概述所谓断点续传&#xff0c;其实只是指下载&#xff0c;也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的&#xff0c;HTTP/1.1开始就支持了。一般断点下载时才用到Range和Content-Range实体头。HTTP协议本身不支持断点上传&#xff0c;需…

RSA公钥文件(PEM)解析

公钥语法为&#xff1a; RSAPublicKey :: SEQUENCE { modulus INTEGER, //RSA合数模n publicExponent INTEGER //RSA公开幂e } 说明&#xff1a; 1.此语法中的modulus和publicExponent&#xff0c;提取自对应私钥中的同名域值。 2.PKCS1和PKCS8的公钥文件是一样的&#xff…

[spring boot] ------ 总结1

spring boot 设计目的&#xff1a;简化spring应用的初始搭建以及开发过程 spring环境的微服务&#xff1a;对原有技术的封装&#xff08;spring springMVC&#xff09; 简化开发&#xff0c;提高开发效率&#xff08;原ssm--->spring boot mybatis&#xff09; 自动配置&…