char 和 varchar 的区别

char(n) :固定长度,效率高;缺点:占用空间;存储固定长度的,使用 char 非常合适。

varchar(n) :可变长度,存储的值是每个值占用的字节再加上一个用来记录其长度的字节的长度。

索引建立原则:在频繁使用的、需要排序的字段上建立索引。

InnoDB 存储引擎的默认索引为 B+ 树索引 ,B+ 树只有叶子节点才存储数据,其他都是索引, B+ 树元素自底向上插入。

B+树的特征:

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。

2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

B+树的优势:

1.单一节点存储更多的元素,使得查询的IO次数更少。

2.所有查询都要查找到叶子节点,查询性能稳定。

3.所有叶子节点形成有序链表,便于范围查询。

所有记录都在叶节点中,并且是顺序存放的,如果我们从最左边的叶节点开始顺序遍历,可以得到所有键值的顺序排序

char 和 varchar 的区别,数据库索引B+树相关推荐

  1. mysql数据库varchar的区别_MySQL数据库char与varchar的区别分析及使用建议

    在数据库中,字符 型的数据是最多的,可以占到整个数据库的80%以上.为此正确处理字符型的数据,对于提高数据库的性能有很大的作用.在字符型数据中,用的最多的就是 Char与Varchar两种类型.前面的 ...

  2. mysql中char与varchar的区别分析(补充一句,int和integer没区别)

    转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  3. mysql中char与varchar的区别分析

    原文网址:http://www.jb51.net/article/23575.htm mysql中char与varchar的区别分析 作者: 字体:[增加 减小] 类型:转载 在mysql教程中cha ...

  4. 通过char与varchar的区别,学习可变长的字符类型

    转自http://www.uphtm.com/database/232.html 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  5. mysql数据库varchar_MySQL数据库char与varchar的区别分析及使用建议

    本文主要介绍了mysql中VARCHAR与CHAR字符型数据的差异以及这两种字符型数据在项目中的使用建议,真心不错.值得一看.小编有种受益匪浅的感觉. 在数据库中,字符 型的数据是最多的,可以占到整个 ...

  6. MySQL中char与varchar的区别

    字符与字节的区别 一个字符由于所使用的字符集的不同,会并存储在一个或多个字节中,所以一个字符占用多少个字节取决于所使用的字符集 注意:char与varchar后面接的数据大小为存储的字符数,而不是字节 ...

  7. mysql中char是什么意思_mysql中char与varchar的区别

    在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下选择塔 ...

  8. char和varchar的区别以及尾部空格问题 - sqlserver演示

    char是一个定长字段,假如申请了char(10)的空间,那么无论实际存储多少内容.该字段都占用10个字符: varchar是变长的,申请的只是最大长度,占用的空间为实际字符长度+1,最后一个字符存储 ...

  9. CHAR 和 VARCHAR 的区别?

    1.CHAR的长度是不可变的,而VARCHAR的长度是可变的,也就是说,定义一个CHAR[10]和VARCHAR[10],如果存进去的是'ABCD', 那么CHAR所占的长度依然为10,除了字符'AB ...

最新文章

  1. oracle12c审计功能,oracle 12c开启关闭统一审计
  2. ARM 之四 各集成开发环境(IDE)说明(Keil、RVDS、ADS、DS-5、MDK)
  3. ActiveMQ Destination高级特性
  4. beeline安装_hive使用beeline配置远程连接
  5. ApacheBench测试Web并发
  6. 【精】沐浴智慧之光:研究查找算法
  7. vue 大屏滚动实现 利用marquee和element-ui table
  8. Linux命令之---cat
  9. 计算机集群用什么网络,什么是计算机系统集群?
  10. python英文分句_【python分句的方法是什么?这些代码才是你需要的】- 环球网校...
  11. 关于FbinstTool加入360急救盘见解
  12. html模块开发模板引擎,给开发者10款最佳的 JavaScript 模板引擎
  13. 【人工智能项目】深度学习实现图像多标签分类
  14. 万用表测电容方法-电子技术方案
  15. 为什么要做MSN聊天机器人
  16. AX200网卡支持linux,Intel 9260/AX200网卡在Deepin/UOS/Ubuntu下网速慢的处理
  17. sql分组 会计分录_会计科目是对()具体内容进行分类核算的项目。A.会计主体B.会计帐户C.会计分录D.会计对象...
  18. 科研论文如何讲好“故事”
  19. 用Python分析波士顿的房价,酸爽!!!
  20. 投资经历(一:入市须谨慎)

热门文章

  1. java class load 类加载
  2. 753 Cracking the Safe
  3. [Leetcode][第39题][JAVA][组合总和][回溯][dfs][剪枝]
  4. [Leetcode][第207题][JAVA][课程表][拓扑排序][DFS]
  5. 服务器水厂物资管理系统,水处理管理系统及水处理管理服务器 Water management systems and water treatment management server...
  6. maven pc配置要求_《使命召唤:黑色行动5》公开测试PC配置要求:推荐GTX970+i7
  7. cadence导入dxf文件_Allegro中如何导入DXF文件
  8. action中写php函数,WordPress中add_action(将函数连接到指定action)
  9. Java设计模式笔记(5)建造者模式
  10. 监控mysql业务数据分析_MySQL数据库监控指标之执行性能总结