当前位置:首页 > 芯闻号 > 充电吧
[导读]1.数据类型的长度尽量小:在满足要求的前提下数据类型长度越小,需要的存储空间也就越小,同时需要读取的CPU周期可能也会越少,可以提高性能 2.数据类型尽量简单:因为当数据类型比较简单的时候说明其规则也

1.数据类型的长度尽量小:在满足要求的前提下数据类型长度越小,需要的存储空间也就越小,同时需要读取的CPU周期可能也会越少,可以提高性能 2.数据类型尽量简单:因为当数据类型比较简单的时候说明其规则也比较简单,这样带来的操作代价也就会越小 3.尽量避免NULL:
原因:a:NULL可能会需要额外的存储空间 
           b.存在NULL的列会使得MySql更难优化,因为存在NULL的列当做索引的时候,可能会使得索引的值比较和索引统计都比较困难
           c:当可为NULL的列被索引时,每一个索引记录会需要一个额外的字节。 数据类型简介: 整型: 主要有 tinyint   smallint  mediumint   int  bigint   这5种数据类型,他们的数据类型的长度是固定的。分别是8bit   16bit   24bit   32bit   64bit 这样可以得到存储空间的大小  int(11),表示的展示长度,如果指定了  zerofill   那么就会显示11位 (00000000001)
实数类型:Decimal  用于存储精确的小数。可以指定小数点前后允许的最大位数DECIMAL(18,9)小数点前后各有9个数字。每4个字节存储9个数字。一共需要9个字节,前后各4个字节,小数点一个字节。 float和double在计算的时候会使用浮点运算,可能导致一些奇怪的结果。但是decimal会需要更大的空间和计算开销,所以应该尽量在对小数需要精确计算的时候使用decimal
字符串类型:CHAR 和VARCHAR:一个是定长字符串,一个是不定长字符串,CAHR会为每一个记录创建固定大小的存储空间,而VARCHAR则是需要多少分配多少,但是会需要额外的空间记录当前占用空间的多少,所以,VARCHAR(200),记录“a”时,需要两个字节,一个字节记录大小,而VARCAHR(2000)的列自会需要额外两个字节, 因为2000超过了255,VARCHAR是比较节省空间,但是当有UPDATE 操作的时候可能产生碎片,而CHAR则不需要考虑这个问题, CHAR 会将字符串末尾的空格截断,对于超长的字符串InooDb会将VARCHAR转为BLOB   更长的列会使用更大的内存,而mysql一般会分配固定内存,如果长度较长的时候,在内存中进行临时表排序的时候性能会有影响,所以需要多少,要求多少才是最佳选择                          BLOB 和TEXT:是为存储很大数据类型而设计的,两者的不同仅在于存储类型的不同,前者是二进制,后者是字符串,如果值过大,那么mysql会使用外部存储,行内存储的是指针,指向外部存储的内容      同时这两个类型的排序方式也是不一样的,他会指定max_sort_length,只进行比较前n个字符,而不是全部,以期获得比较好的性能   ENUM类型:直说一句,在存储的时候ENUM类型存储的并不是我们指定的字符串,而是数字,这是mysql为了压缩空间使用的方法,而在读取时是根据.frm文件进行的转换,也就是在表定义中存储的映射关系

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机内部有很多的特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般我们会根据寄存器功能的不同给寄存器赋予各自的名称,当我们需要在程序中操作这些特殊功能寄存器时,必须要在程序的最前面将这些名称加以声明,声明的...

关键字: C51 数据类型 扩充定义

数据元(Data Element),也称为数据元素,是用一组属性描述其定义、标识、表示和允许值的数据单元,在一定语境下,通常用于构建一个语义正确、独立且无歧义的特定概念语义的信息单元。数据元可以理解为数据的基本单元,将若...

关键字: C51 数据类型

Perl是一种弱类型语言,所以变量不需要指定类型,Perl解释器会根据上下文自动选择匹配类型。Perl有三个基本的数据类型:标量、数组、哈希。以下是这三种数据类型的说明:序号类型和描述1标量标量是Perl语言中最简单的一...

关键字: 数据类型

来源:https://juejin.cn/post/6860252224930070536| 背景日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查...

关键字: mysql

mysql的一行记录,最终肯定是存储在磁盘上,也就是肉眼可见的文件上,今天我们的目标很简单,就是看看它到底是怎么存的。当然还有一个更重要的目标,就是以这个为引子,带大家完全通过一手资料,来揭秘这个问题的答案。所以大家阅读...

关键字: mysql

跟着官方文档 源码 源文件三件套自己探索

关键字: mysql 存储

什么Mysql的事务?事务的四大特性?事务带来的什么问题?你详细了解过MVCC吗?它是怎么工作的?

关键字: mysql 嵌入式

想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里?

关键字: mysql 嵌入式

最近,在开发一个分库分表中间件,由于功能需求,需要分析MySQL协议,发现网上对于MySQL协议分析的文章大部分都过时了,原因是分析的MySQL版本太低了。怎么办?于是乎,我便硬着头皮开始啃MySQL源码,经过两个多月的...

关键字: mysql 嵌入式

想进大厂,Mysql不会那可不行,来接受Mysql面试挑战吧,看看你能坚持到哪里?

关键字: mysql 嵌入式
关闭
关闭