今天看了一本书,看了了2个问题
1 mysql中 浮点比定点运算快(之前我一直理解是相反的)
2在mysql 5.0及以上版本中,服务器自身进行了定点运算,因为CPU并不支持它进行直接计算(前面是原文引用书本)浮点运算会快一点,就体现在他说的这一点,因为浮点直接在CPU上进行。请各位大侠确认这是正确的吗?
1 mysql中 浮点比定点运算快(之前我一直理解是相反的)
2在mysql 5.0及以上版本中,服务器自身进行了定点运算,因为CPU并不支持它进行直接计算(前面是原文引用书本)浮点运算会快一点,就体现在他说的这一点,因为浮点直接在CPU上进行。请各位大侠确认这是正确的吗?
按照书上说的 浮点直接在CPU上进行 而DECIMAL是在服务器上进行 应该可以理解为是要mysql自身处理 在内部可能转为 double 所以应该有可能
等大牛解释
应该可以理解为是要mysql自身处理
mysql 最终还是在CPU上运算的啊
如果你的书上写的是"定点", 那就是翻译错了
以前学的那个定点数就是整数或纯小数(小数点在最左),其它的定点小数可以转换成这两种.但是mysql的decimal无法做这个转换,
原因是因为decimal的表示范围太大,它的位数可以到65位,这个远远超过了64位机(更不要说32位)能表示的整数范围,所以必须用软件方法实现精确计算复习了半天计算机原理,有兴趣的一起复习吧:
http://218.5.241.24:8018/C35/Course/ZCYL-HB/WLKJ/jy/Chap02/2.1.1.1.htm
http://online.ncu.edu.cn/eol/homepage/common/opencourse/onlinepreview.jsp?countadd=1&lid=5272&resid=121906717
浮点数 float 是以二进制方式保存的,计算时计算机将通过浮点运算协处理器进行计算
而 mysql 的 decimal 类型数据是以字符串方式存储的,计算时需先将字符串转换成“数”,仅就这一点,已经就比浮点运算慢了。况且为保证计算精度,计算时是整数部分和小数部分分开的。这就又慢了一些