一、优化数据类型的几个原则:

1. 更小的通常更好

a) 一般情况下应该尽量使用可以正确存储数据的最小值数据类型

b) 更小的通常更快,因为它占用更少的磁盘内存和cpu缓存,处理时需要的cpu周期更少

2. 简单就好

a) 简单数据类型的操作通常需要更少的cpu周期

3. 尽量避免NULL

a) 查询中包含可能为NULL的列,能够使MySQL更难优化

b) 可为NULL列会占用更多的存储空间,在MySQL也需要特殊处理

c) 当可为NULL的列被索引时候,每个索引继续需要一个额外的字节

注:在为列选择数据类型时,第一步需要确定合适的大类型:数字、字符串、时间等,

下一步是选择具体类型。

二、整数类型优化

1. 存储整数可以使用的几种数据类型:

a) TINYINT(8)

b) SMALLLINT(16)

c) MEDIUMINT(24)

d) INT(32)

e) BIGINT(64)

2. 整数类型可选UNSIGNED属性,标识不允许负值

a) TINYINT UNSIGNED(0~255)是TINYINT(-128~127)的两倍

3. 整数计算一般使用64位的BIGINT

4. MySQL可以为整数类型数据指定宽度:如int(11),

a) 不会限制值的合法范围

b) 只是规定了MySQL的交互工具显示字符的个数

c) 对于存储和计算来说,INT(1)和INT(11)是相同的

d) 如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段b,插入数值1显示为00000000001,左边补了10个零直至长度达到11位;

e) 设置字段的显示宽度并不限制字段存储值的范围,比如字段d设置为int(5),但是仍然可以存储1234567890这个10位数字;

f) 设置的字符宽度只对数值长度不满足宽度时有效,如d字段int(5),插入1时,长度不足5,因此在左边补充4个零直到5位,但是插入1234567890时超过了5位,这时的显示宽度就起不了作用了。

三、实数类型

1. 实数是带小数部分的数字

a) 可是使用DECIMAL储存比BIGINT还打的数字

2. DECIMAL类型用于存储精确的小数

a) DECIMAL(18,9)小数点两边个存储九个数字,一共使用九个字节,,小数点前后各有四个字节,小数点本身占一个字节

b) decimal(a,b)

1. a指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。

2. b指定小数点右边可以存储的十进制数字的最大个数。小数位数 必须是从 0 到 a之间的值。默认小数位数是 0。

3. DECIMAL需要额外的空间和计算开销,应该尽量只对小数进行精确计算是才使用DECIMAL(储存财务数据)。

a) 在数据量比较大的时候,可还是考虑使用BIGINT代替DECIMAl,这时将需要储存的货币单位根据小数的位数诚意相应的倍数即可。

b) 假设要储存的财务数据精确到万分之一,则可以把所有的金额乘以一百万,然后将结果储存到BIGINT里面。同时避免浮点储存计算不精确和DECIMAL精确计算代价高的问题。

mysql 64位整型_高性能MySQL笔记精简(整数和实数优化)相关推荐

  1. vc6 C/C++的64位整型

    :C/C++的64位整型 在C/C++中,64为整型一直是一种没有确定规范的数据类型.现今主流的编译器中,对64为整型的支持也是标准不一,形态各异.一般来说,64位 整型的定义方式有long long ...

  2. C/C++的64位整型

    在C/C++中,64为整型一直是一种没有确定规范的数据类型.现今主流的编译器中,对64为整型的支持也是标准不一,形态各异.一般来说,64位整型的定义方式有long long和__int64两种(VC还 ...

  3. MongoDB中关于64位整型存储解决方案

    为什么80%的码农都做不了架构师?>>>    社区内一哥们@smcboy 提出关于php中操作MongoDB存储整数问题,找到点资料花点时间翻译过来,是个很好的学习方式.@红薯 那 ...

  4. 【转】C/C++的64位整型 不同编译器间的比较

    /为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数   //结果VC中还是认为是32位的,显然不合适   //typedef signed long int ...

  5. 整理C/C++中的64位整型

    本篇文章转载自:VC驿站:http://www.cctry.com/thread-277221-1-1.html 最近给大家录制讲解C++基础方面的教程,刚讲到数据类型这块.地址如下:http://w ...

  6. C/C++的64位整型 zz

    //为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int TS ...

  7. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(9) - 64位整型指令(MMX指令集扩展)

    SSE 64-Bit SIMD Integer Instructions SSE扩展增加了几条64位组合的整型指令,这些指令操作MMX寄存器和64位的存储器操作数,这些指令可以看作是对MMX指令集的扩 ...

  8. C++长整型(long long)64位整型耗时问题

    C++的long long型整型性能很差 今天刷OJ时偶然发现C++ long long整型数据居然耗时超过好几百毫秒,这对于时间敏感的编程题是无法忍受的,故记录此坑,留作纪念. 一.先上图 1.定义 ...

  9. 关于64位整型int64_t

    1. 定义在头文件stdint.h中 2. 使用printf输出一个int64_t整数时,对于32位系统,应使用%lld,对于64位系统,应使用%ld.

最新文章

  1. Android Studio 设置git 提交代码
  2. 从Storm到Flink:大数据处理的开源系统及编程模型(文末福利)
  3. win32汇编创建线程简单Demo
  4. python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略
  5. mysql order by基于时间的盲注
  6. 【Gym-100837E】Optimal Rest【完全背包】
  7. 思维导图 进阶(01)关键词提取,思维导图的灵魂
  8. vue 手机号正则表达式
  9. 如何利用直通车快速打造爆款?
  10. 亚太区最美面孔杨超越登榜,网友:不喜欢她
  11. 求若当标准型的变换矩阵
  12. mui ajax 懒加载,MUI框架运用中遇见问题总结
  13. 深入理解Linux内核-第3版 译者序、前言、目录 内核2.6.11
  14. 基于MM、STP、ECN、MTF的外汇平台模式深度分析
  15. python打字机效果_打字效果动画的4种实现方法(超简单)
  16. OnlyS减脂瘦身APP被减肥达人全资收购
  17. AIS(ACL,IJCAI,SIGIR)(2019)论文报告会,感受大佬的气息...
  18. QR分解的三种实现方法
  19. 网络刷单背后的大圈套让很多人中招
  20. 小程序开发学习(3)---.wxss详解篇

热门文章

  1. 【Flink】flink highavailabilityservices 源码解析
  2. 【kafka】FLink kafka Unable to retrieve any partitions with KafkaTopicsDescriptor: Fixed Topics
  3. 【Flink】 Flink 应用资源分配问题排查思路
  4. 【kafka】kafka record is corrupt(记录损坏)
  5. 40-400-035-运维-优化-pt-variable-advisor优化工具
  6. 【Elasticsearch】 Elasticsearch slop管理间隔字符查数据
  7. 【Flink】Flink 报错 exited with a non-zero exit code 1
  8. 【MySQL】MySQL 8 连接出现 2059 - Authentication plugin caching_sha2_password ca
  9. Kudu : NonRecoverableException: Got out-of-order key column
  10. Mac OS使用ll、la、l等ls的别名命令