Oracle背景的一些人使用DECIMAL(31,0)作为整数的原因是什么?在MySQL中它并不高效。使用DECIMAL的原因(31,0)
回答
甲骨文实现“INTEGER” ANSI数据类型为NUMBER(38)
详情的同义词请参见“Learn Oracle: Datatypes for SQL and PL/SQL, Numbers”
然而,下表应作为Oracle中的数据类型之间的映射和MySQL:
"Oracle® Database SQL Developer Supplementary Information for MySQL Migrations"
甲骨文和MySQL相比>数据类型>比较数据类型
的主要区别,如所解释here和here是Oracle NUMBER数据类型是可变长度格式,而MySQL的DECIMAL曾经是represented as strings that require one byte per digit or sign character
(甲骨文公司(5.0.3版本之前)(n)的数据类型NUMBER数据类型)内部数字格式
Oracle数据库以 可变长度格式存储数值数据。每个数值为 ,以科学计数法存储,其中1 字节用于存储指数,并且上调 至20字节以存储尾数。 生成的值仅限于38位数字的精度的 。 Oracle数据库 不存储前导和尾随 零。例如,数字412是 ,以类似于4.12 x 102的格式存储,其中1字节用于存储指数(2)和用于存储 尾数(4,1)的3位有效数字的 指数(2)和2字节,2)。负数 包含其长度的符号。
在字节考虑到这一点,列 大小为特定数字 数据值NUMBER(p),其中p为一给定值的 精度,可以是 使用以下 公式计算:
ROUND((length(p)+s)/2))+1
其中s为零,如果数量是 阳性,和s等于1,如果该数目 是负的。
零和正和负 无穷大(仅在从Oracle数据库版本5导入 时生成)为 使用唯一表示形式存储。 零和负无穷每个 需要1个字节;正无限 需要2个字节。
和
(MySQL的)十进制数据类型更改为 整数并且每个 值的小数部分
的存储要求是分别确定的。每个 9个数字的倍数需要四个 字节,并且剩余的所有剩余的数字在 之上需要四个 字节的一部分。 [...]
例如,DECIMAL(18,9)柱 对 小数点的任一侧九个数字,所以整数部分和 小数部分均需要4个 字节。 DECIMAL(20,6)列有 十四个整数数字和六个 小数位数。整数数字 需要4个字节用于 数字中的9个数字,另外3个字节用于剩余的5位数字。这六个小数位需要三个字节。
- 1. 不使用iframe的原因?
- 2. 不使用IFrame的原因?
- 3. 不使用typekit的原因?
- 4. 使用'instanceof function(){}'的原因?
- 5. 不使用GROUP_CONCAT的原因?
- 6. 使用“^”的主要原因
- 7. 使用AutoMapper的原因
- 8. NSNumber decimal到C原始值?
- 9. pushViewController原因使用hidesBottomBarWhenPushed(iphone6)
- 10. Json.NET原始类型 - 使用Decimal而不是Double
- 11. 重复使用PreparedStatement的原因的SQLException
- 12. 使用旧版jQuery的原因?
- 13. 在Java中使用包的原因
- 14. 使用SIP协议的原因
- 15. PHP - 使用迭代器的原因?
- 16. Android,widgets无法使用的原因
- 17. 使用esb的原因是什么
- 18. 使用OpenJDK的原因是什么?
- 19. 使用ON UPDATE约束的原因
- 20. 不使用CSS重置的原因?
- 21. 高压缩视频中显示的块的原因/使用/原因是什么?
- 22. MFMessageComposeViewControllerTextMessageAvailabilityDidChangeNotification的原因
- 23. IllegalStateException的原因
- 24. SIGPIPE的原因
- 25. socket.error的原因
- 26. ArrayIndexOutOfBoundsException的原因
- 27. ClassNotFoundException的原因
- 28. TransactionTooLargeException的原因?
- 29. 如何使用MySQL DECIMAL?
- 30. 由于某种原因使用函数