首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL数据类型选择性能比对详解

在关系型 数据库 建表期间,我们需要考虑很多很多的事项。诸如表存储什么数据,列上使用的数据类型,选择什么样的存储引擎等等。...本文主要介绍针对表上列使用三种不同的数据类型来进行对比,以观察选择不同数据类型时,对于性能造成的影响。 一、建表时需要考虑的事项 作用: 存储什么数据? 结构: 包含什么列,需要约束吗?...存储: 每一列使用什么数据类型?需要索引吗? 引擎: 使用什么存储引擎呢? 数据筛选: 哪些列被频繁用作过滤条件?增删改查频率?...数据类型占用的磁盘你空间与char类型占用磁盘空间等同。...bigint数据类型性能最佳 四、最终比对结果及结论 最终完整结果图: 结论: 1)满足需求的前提使用更小长度的数据类型(更少磁盘占用,I/O,CPU,memory开销) 2)整型优先原则,使用简单数据类型

57410

MySQL数据类型选择性能比对

https://blog.csdn.net/robinson_0612/article/details/84365551 在关系型数据库建表期间,我们需要考虑很多很多的事项。...诸如表存储什么数据,列上使用的数据类型,选择什么样的存储引擎等等。本文主要介绍针对表上列使用三种不同的数据类型来进行对比,以观察选择不同数据类型时,对于性能造成的影响。...一、建表时需要考虑的事项 作用:    存储什么数据? 结构:    包含什么列,需要约束吗? 存储:    每一列使用什么数据类型?需要索引吗? 引擎:    使用什么存储引擎呢?...数据类型占用的磁盘你空间与char类型占用磁盘空间等同。...,可以看出依旧是bigint数据类型性能最佳 image.png 四、最终比对结果及结论 最终完整结果图: image.png 结论: 1)满足需求的前提使用更小长度的数据类型(更少磁盘占用

66020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQLite vs MySQL vs PostgreSQL:关系型数据库比较

    SQLite SQLite是一款轻型数据库,它遵守ACID,能够嵌入到使用它的应用程序中。...缺少通过优化获得额外性能的空间 还是由于设计方面的原因,无法通过优化SQLite获得大量的额外性能。这个类库非常容易调整、也非常容易使用。...替代磁盘访问 在很多情况下,需要直接读写磁盘文件的应用程序可以切换到SQLite从而受益于SQLite提供的额外功能以及使用结构化查询语言(SQL)所带来的简便性。...安全 支持很多安全特性,有些非常高级,并且是内置于MySQL中。 可扩展也非常强大 MySQL能够处理大量数据,并且在需要的时候可以规模化使用。...尽管该数据库非常强大,但是它却没有像MySQL那么流行,即便如此依然有很多优秀的第三方工具和类库可以让我们更容易地使用它。

    4.2K50

    smallint是sql的数据类型吗_char数据类型

    tinyint 从 0 到 255 的整型数据。存储大小为 1 字节。 注释 在支持整数值的地方支持 bigint 数据类型。...但是,bigint 用于某些特殊的情况, 当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中, int 数据类型是主要的整数数据类型。...在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。 只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。...大于 2,147,483,647 的整数常量将转换为decimal 数据类型,而不是 bigint 数据类型。 下面的示例显示当超过此阈值时,结果的数据类型将从 int 变为 decimal。...不要杀鸡用牛刀,因为对空间的浪费 会很严重,效率也会受到一定的影响。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    61430

    Python 进阶(五):数据库操作之 SQLite

    SQLite 是一个进程内的库,可以自给自足、无服务器、无需配置、支持事务,Python 可以通过 sqlite3 模块与 SQLite3 集成(3 是版本号),Python 2.5.x 以上版本内置了...sqlite3 模块,我们可以直接使用。...数据类型 2.1 存储类型 存储类型是数据保存成文件后的表现形式,主要包括如下几种: 类型 描述 NULL 空值 REAL 浮点数类型 TEXT 字符串,使用数据库编码(UTF-8、UTF-16BE 或...UTF-16LE)存储 BLOB 二进制表示 INTEGER 有符号的整数类型 2.2 亲和类型 亲和类型是数据库表中列数据对应存储类型的倾向性,当数据插入时,字段的数据将会优先采用亲缘类型作为值的存储方式...,主要包括如下几种: 类型 描述 NONE 不做任何转换,直接以该数据所属的数据类型进行存储 TEXT 该列使用存储类型 NULL、TEXT 或 BLOB 存储数据 NUMERIC 该列可以包含使用所有五个存储类型的值

    1.2K20

    ClickHouse(07)ClickHouse数据库引擎解析

    建表语句 CREATE DATABASE test[ ENGINE = Atomic];特性Table UUID数据库Atomic中的所有表都有唯一的UUID,并将数据存储在目录/clickhouse_path...通常,UUID是自动生成的,但用户也可以在创建表时以相同的方式显式指定UUID(不建议这样做)。...SQLite将整个数据库(定义、表、索引和数据本身)存储为主机上的单个跨平台文件。在写入过程中,SQLite会锁定整个数据库文件,因此写入操作是顺序执行的。读操作可以是多任务的。...创建数据库 CREATE DATABASE sqlite_database ENGINE = SQLite('db_path')引擎参数db_path — SQLite 数据库文件的路径数据类型对应...DDL不是复制的,但可以处理(如下所述)。这是一个实验性的引擎,不应该在生产中使用。

    34810

    面试官问:千年海龟在MYSQL里面选什么数据类型最合适?为什么?

    这是笔者之前遇到的一个面试题:面试官问海龟的年龄(1000+)在MySQL中用什么数据类型最为合适?为什么呢? 我们接下来一起来好好分析一下。...01 面试官心理 海龟的年龄我们粗略估计一下最大活到1000+都有可能,正所谓千年龟对吧 。那如果支持活到千岁该怎么选呢。什么类型转成十进制范围能达到千而且存储空间(占用字节)又比其他类型小呢?...你应该要清楚的 02 详解 上面这张图详细的介绍了各个数字类型:tinyint、smallInt、mediumint、int、bigint。 平时我们开发的时候,基本都会被用到吧。...比如很多小伙伴习惯将一些表的状态字段存储成tinyint类型。数据库主键存储成bigint类型等。 平时使用的时候,其实也是非常随意,不会过多去纠结具体改选哪个类型。...像status字段你用tinyint和int存储,你想想一个占用1个字节存储,一个占用4个字节存储,节省了多少空间。

    44520

    SQLite3详细介绍

    特点 零配置 占用空间少,源代码仅有2MB 速度快,占用内存少 嵌入式数据库引擎,不需要服务器进程,一个数据库就是磁盘上的一个文件 没有用户名和密码的概念 开放源码,任何人都可以使用 跨平台——可以在...在打开的窗口中选择文件旁的三点图标 选择已有的数据库文件,点击确定 测试连接 在第二步中,我们也可以直接点击确定,idea会帮助我们在当前项目目录下创建一个数据库文件 当连接成功后,我们就可以使用图形化的方式操作数据库了...SQLite 没有存储函数/存储过程语言 用户不可以自定义存储过程/函数 用户管理 SQLite中没有任何特定的用户管理功能,因此不适合多用户访问。...,但可以使用SAVEPOINT 命令在事务里启动一个具有名称的新事务。...jdbc:sqlite:"+pwd+"/demo.db"; 关于数据库连接用户名和密码的说明 SQLite中没有用户名和密码的概念,我们在连接数据库时不需要指定用户名和密码。

    2.5K70

    深入浅出MySQL:从零开始掌握建表规约

    在开始详细介绍 MySQL 的建表规约之前,我们需要先了解为什么需要遵循这些规约。以下是几个关键原因: 统一规范:有助于团队协作,确保代码和数据库结构的一致性和可读性。...这样可以确保数据的范围更大,减少存储空间。 正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。 2....可变长字符串使用规范 【强制】 varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索引效率...正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存储类目名称,避免关联查询。 14....细节说明 在上述设计中,我们遵循了多个建表规约: 表达是与否的字段使用了 is_active 和 order_status,数据类型为 unsigned tinyint。

    9310

    《MySQL核心知识》第5章:字段长度与类型宽度

    数据类型宽度 MYSQL中的整数型数据类型都可以指定显示宽度....创建一个表 CREATE TABLE tb_emp( id BIGINT(1)) id字段的数据类型为BIGINT(1),注意到后面的数字1,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数...例如,假设声明一个INT类型的字段 YEAR INT(4) ,该声明指明,在year字段中的数据一般只显示4位数字的宽度。 显示宽度和数据类型的取值范围是无关的。...显示宽度只是指明MYSQL最大可能显示的数字个数,数值的位数小于指定的宽度时会有空格填充,如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能显示出来。...注意:显示宽度只用于显示,并不能限制取值范围和占用空间,例如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是INT整型所允许的最大值。

    1.4K30

    MySQL 高性能表设计规范

    如果存储整数, 可以使用这几种整数类型:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT。分别使用8,16, 24, 32, 64位存储空间。...然而, 它们不只是为了存储小数部分,也可以使用DECIMAL 存储比 BIGINT 还大的整数。 FLOAT和DOUBLE类型支持使用标准的浮点运算进行近似计算。...有多种方法可以指定浮点列所需要的精度, 这会使得MySQL选择不同的数据类型,或者在存储时对值进行取舍。 这些精度定义是非标准的,所以我们建议只指定数据类型,不指定精度。...但在数据最比较大的时候, 可以考虑使用BIGINT代替DECIMAL, 将需要存储的货币单位根据小数的位数乘以相应的倍数即可。...5.其他类型 5.1选择标识符 在可以满足值的范围的需求, 井且预留未来增长空间的前提下, 应该选择最小的数据类型。

    80420

    SQLite数据库的类型系统特点及应用分析

    SQLite是一种轻量级的嵌入式数据库系统,广泛应用于各种移动设备和桌面应用程序中。下面我们将探讨SQLite数据库的类型系统特点,并分析它在实际应用中的优势和适用性。...NULL值支持:SQLite支持NULL值,即空值。NULL值表示缺少有效数据,可以在列中存储空值。这种NULL值的支持使得SQLite能够处理缺失数据或者未知数据的情况。...SQLite数据库类型系统的优势 灵活性和简单性:SQLite的动态类型系统赋予了它极高的灵活性,可以存储各种类型的数据。开发人员无需在创建表时指定列的数据类型,减少了开发的复杂性。...例如,SQLite会根据存入的整数值的大小自动选择最合适的整数类型,从而减少了数据存储的空间占用。这种高效的数据存储方式使得SQLite在资源受限的嵌入式设备和移动设备上表现出色。...它的动态类型特性使得数据存储和查询更加灵活和高效,同时节省了存储空间。SQLite的类型系统在移动应用程序、桌面应用程序和嵌入式设备中得到广泛应用,并展示出卓越的性能和可靠性。

    13810

    mysql数据类型详解(1)

    如果存储整数,可以使用几种整数类型:tinyint,smallint,mediumint,int或bigint,他们分别需要8,16,24,32,64位存储空间。...可以使用decimal保存比bigint还大的整数。mysql同时支持精度与非精度类型。 float和double类型支持使用标准的浮点运算进行近似计算。...它能比固定长度类型占用更少的存储空间,因为它占用了自己需要的空间。可以节约空间,对性能有帮助,然而由于长度是可变的,它们在更新的时候可能会发生变化,这会引起额外的工作。...varchar(200)与varchar(5)保存‘hello’,占用的空间都是一样的,那么使用较短的列任何优势吗?...mysql内部把每个值都保存为整数,以表示值在列表中的位置,并且保留了一份查找表来表示整数和字符串在表.frm文件中的映射关系。

    97780

    网易MySQL微专业学习笔记(一)-mysql数据类型

    前言 这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL数据库对象与应用”中的MySQL数据类型相关笔记。...两者本质上没任何区别,11不会因为比21小,所占用的空间比21小,存储范围也不会小。只在某些显示上可能会有些不同。 若存1,其他位数会自动补0,int(11)补10,21补20个。...性别、省份 首选 tinyint,在之后char,也可以enum 经验之谈: 存储性别、省份、类型等分类信息时选择tinynit或者enum bigint存储空间更大,int和bignit之间通常选择bigint...虽然数据库可以存储二进制数据,但是性能低下,不要使用数据库存储文件音频等二进制数据, 存储生日信息 date 存储空间      三字节,如:2015-01-01 存储精度      年月日 time...unix_timestamp()将时间转为bigint 经验之谈: date和time类型精度较低 bigint类型也可以存储时间 数据类型选型,按需选择 bigint--可读性较差

    76410

    mysql数据类型tinyint_innodb buffer pool size

    mysql中int、bigint、smallint 和 tinyint的区别详细介绍 最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。...存储大小为 2 个字节。 tinyint 从 0 到 255 的整型数据。存储大小为 1 字节。 注释 在支持整数值的地方支持 bigint 数据类型。...但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。...SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。 int(M) 在 integer 数据类型中,M 表示最大显示宽度。...在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。

    56440

    (建议收藏)原生JS灵魂之问, 请问你能接得住几个?(上)

    p1对象的内存地址,通过调用person.age = 26确实改变了p1的值,但随后person变成了另一块内存空间的地址,并且在最后将这另外一份内存空间的地址返回,赋给了p2。...在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象然而 null 表示为全零,所以将它错误的判断为 object 。...6.如何理解BigInt? 什么是BigInt? BigInt是一种新的数据类型,用于当整数值大于Number数据类型支持的范围时。...这种数据类型允许我们安全地对 大整数执行算术操作,表示高分辨率的时间戳,使用大整数id,等等,而不需要使用库。 为什么需要BigInt?...、事件监听、Ajax请求、跨窗口通信、Web Workers或者任何异步中,只要使用了回调函数,实际上就是在使用闭包。

    1.6K11

    原生JS灵魂考核, 你能回答出来几题?

    p1对象的内存地址,通过调用person.age = 26确实改变了p1的值,但随后person变成了另一块内存空间的地址,并且在最后将这另外一份内存空间的地址返回,赋给了p2。...在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象然而 null 表示为全零,所以将它错误的判断为 object 。...6.如何理解BigInt? 什么是BigInt? BigInt是一种新的数据类型,用于当整数值大于Number数据类型支持的范围时。...这种数据类型允许我们安全地对 大整数执行算术操作,表示高分辨率的时间戳,使用大整数id,等等,而不需要使用库。 为什么需要BigInt?...、事件监听、Ajax请求、跨窗口通信、Web Workers或者任何异步中,只要使用了回调函数,实际上就是在使用闭包。

    1.2K20

    数据类型(一)

    和用户定义的标准对 1840 年 12 月 31 日之前的日期的可配置支持支持字符串数据类型、列表数据类型和流数据类型支持 ROWVERSION 数据类型IRIS® 数据平台 ODBC / JDBC 公开的数据类型使用查询元数据方法和数据类型整数代码确定列的数据类型创建用户定义的数据类型处理未定义的数据类型数据类型转换函数数据类型指定列可以保存的值的种类...在使用 CREATE TABLE 或 ALTER TABLE 定义字段时指定数据类型。定义 SQL 字段时,可以指定下表(左列)中列出的 DDL 数据类型。...当指定其中一种 DDL 数据类型时,它会映射到右侧列中列出的IRIS 数据类型类。在IRIS 中定义字段时,可以指定 DDL 数据类型或数据类型类。 DDL 数据类型名称不区分大小写。...指定 %Library.String 数据类型时,指定的 MAXLEN 值不必与数据的实际大小密切对应。如果字段值为“ABC”, 仅使用磁盘、全局缓冲区和私有进程内存中的那么多空间。...这通常是数字中的总位数;但是,其确切值由 %Library 类数据类型映射决定。最大整数值为 9223372036854775807。大于 19+s 的精度默认为 19+s。

    87320
    领券