mysql 优化 类型_MySQL数据类型的优化选择
整数类型:
Tinyint-8
Smallint-16
Mediumint-24
Int-32
Bigint-64
实数类型(带有小数部分的数字)
Float-4/double-8:浮点
Decimal:精确(只是存储格式,在计算中会转为double类型)
浮点类型在存储同样范围的值时,通常比decimal使用更少的空间。
字符串类型:
Varchar:可变长字符串(需要1-2个字节存储字符串长度)
优点:比定长类型节约空间;
缺点:碎片问题。字符串update变长时,一个行的占用空间变长,但是在页内没有更多空间存储,MYISAM将行拆成不同片段存储,InnoDB分裂页使行可以放进页内;
适用:字符串最大长度比平均长度大很多;列的更新很少;
Char:定长字符串(MySQL会删除所有末尾空格)
优点:不易产生碎片
适用:存储密码的MD5值;经常变更的数据;
大型数据类型:
Blob:二进制
Text:字符
特殊性:mysql将blob和text值当做一个独立的对象处理,当值太大时,innodb在值内存储一个指针,外部存储区域存储实际的值;mysql对blob和text的排序,只对每列的最前max_sort_length进行排序;mysql不能将列的全部长度字符串进行索引,也不能使用这些索引进行排序;
枚举类型ENUM:
mysql在存储枚举类型时非常紧凑;
Mysql在内部会将每个值在列表中的位置保存为整数,并且在表的.frm文件中保存“数字-字符串”的映射关系的查找表;
缺点:字符串列表是固定的,添加或删除字符串都需要alter table;
优点:可以缩小表的大小;主键减小后,innodb表的非主键索引也会变小;
关联速度:enum列 关联 enum列 > varchar列 关联 varchar列 > enum列 关联 varchar列
日期时间类型:
Datetime:8字节;与时区无关;保存大范围的值,从1001年到9999年,精度为秒;
Timestamp(尽量使用):4字节;依赖于时区;保存1970.1.1以来的秒数;列默认为not null;
Timestamp的特殊性:如果插入数据时没有指定第一个timestamp列的值,mysql则设置这个值为当前时间;
mysql 优化 类型_MySQL数据类型的优化选择相关推荐
- mysql 负数类型_MySQL数据类型详解
MySQL数据类型,可以被分为3类:数值类型.日期和时间类型以及字符串(字符)类型 方括号("["和"]")指出可选的类型修饰符的部分 M 指出最大的显示尺寸. ...
- mysql long类型_MySQL数据类型笔记
引言 作为一个做Java后端的开发者,无论是在自己平时项目学习实战还是工作中的真实项目,都离不开和数据库打交道.而MySQL作为当今最流行的关系型数据库之一,也成为了我们必须掌握的一门技术.最近在工作 ...
- mysql decimal 类型_MySQL数据类型DECIMAL用法详解
MySQLDECIMAL数据类型用于在数据库中存储精确的数值.我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据. 要定义数据类型为DECIMAL的列,请使用以下语法: ...
- mysql 小类型_mysql 数据类型
1.整数类型 tinyint 1个字节 smallint 2个字节 mediumint 3个字节 int 4个字节 bigint 8个字节 2.浮点数类型.定点数类型 float 4个字节 do ...
- mysql polygon 类型_MySQL数据类型 - 空间数据类型 (4)
支持的空间数据格式 有两种标准空间数据格式用于表示查询中的几何对象: ●已知文本(WKT)格式 ●已知二进制(WKB)格式 在内部,MySQL用与WKT或WKB格式不同的格式存储几何值.(内部格式类似 ...
- mysql整理类型_MYSQL数据类型分析整理
1,时间类型 类型 所站空间 datetime 8字节 timestamp 4字节 date 3字节 ye ...
- 高性能MySQL(2)——Schema与数据类型的优化
良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计 schema,这往往需要权衡各种因素. 一.选择优化的数据类型 MySQL支持的数据类型非常多,选择正确的数据类型对于获得 ...
- mysql范围条件_MySQL 索引及优化实战(一)
mysql 随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能.高并发和高可用的系统. ...
- mysql 类型_MySQL数据类型
MySQL与SQLServer的数据类型大同小异.因此,可以忽略与SQLServer相同的地方,在SQLServer的基础上学习. 一.整型的显示宽度 MySQL数据类型与SQLServer有些不同, ...
最新文章
- xamarin的破解安装
- linux 自动化交互套件 expect 介绍 shell非交互
- 基础练习 FJ的字符串
- C#——继承[模拟Server类]初始化过程顺序DMEO
- nginx操作指南之二
- kali linux改中文_kali linux 2019.4设置为中文方法
- 记录您的里程和社区运行情况:Java EE 7真实体验
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 9.1 对XML的支持
- asp打开exe执行本地程序._ASP.NET Core json配置文件
- 锐捷破号破解流程笔记
- 免费天气预报API接口
- dell服务器新bois系统设置u盘启动,跟大家讲讲dell新版biosU盘启动顺序
- 解析为何支付宝微信二维码合一
- 《算法笔记》学习笔记(1)
- SDK无埋点技术在百分点的探索和实践
- 超高清晰电影寻觅及下载技巧汇集
- 三星借力北京奧運東風
- 2020大众心理健康洞察报告-简单心理——附下载链接
- 蛋白质多重分析技术研究分析报告-
- 概念数据模型,逻辑数据模型,物理数据模型
热门文章
- Python3调用MySQL数据库中的数据
- 学Python做人工智能的前景怎么样?如何入行?
- wxWidgets:wxList< T >类模板的用法
- wxWidgets:事件和事件处理
- boost::detail::sp_typeinfo_相关的测试程序
- boost::phoenix::delete和using boost::phoenix::new_相关的测试程序
- boost::mpi模块all_reduce() 集合的测试
- boost::geometry::srs::transformation用法的测试程序
- Boost:基于boost::asio模块引用计数程序
- VTK:可视化算法之StreamlinesWithLineWidget