网络编程
位置:首页>> 网络编程>> 数据库>> MySQL表设计优化与索引 (三)

MySQL表设计优化与索引 (三)

 来源:Asp之家 发布时间:2010-10-25 20:05:00 

标签:mysql,优化,索引

Real Numbers

实数

实数是具有小数部分的数字, 当然, 实数不是专门用来表示小数的, 也可以用DECIMAL来存储那些无法用INTERGER来存储的大整数。 Mysql同时支持准确的和非准确的类型。

FLOAT和DOUBLE类型支持近似的标准浮点数数学计算。 如果需要知道准确的浮点数计算, 参考具体平台的浮点数计算规则。

DECIMAL类型是用来存储准确的小数, 在mysql 5.0以后的版本, DECIMAL支持准确的数学计算。在Mysql4.1 及以前的版本中, MUMERIC类型也是用浮点计算来完成运算的, 因此可能会出现一些由于精度损失而出现的一些不准确的结果, 在这些版本的mysql中, DECIMAL是一种”存储”概念类型。

在5.0以及以后的版本, mysql自己来进行DECIMAl计算, 因为cpu没有对DECIMAL的直接支持。 当然, 浮点计算在某种程度上相对快些, 因为CPU是直接支持浮点计算的。

浮点类型和DECIMAl类型允许指定精度。对于DECIMAL字段, 能够指定小数点前和后允许的最多的数字个数, 这个关系到数值的存储空间的消耗。Mysql5.0以及以后的版本中, 所有的数字位数以二进制字符串的方尺存储的(每4个字节9个数字)。 例如, DECIMAL(18, 9) 数据类型的小数点两边都存储9个数字符号, 因此共用9个字节, 4个字节存储小数点之前的数字符号, 1个字节存储小数点本身, 4个字节存储小数点之后的数字符号。

在MYSQL 5.0及之后的版本, 一个DECIMAL数字能存储65位数字, 早期的mysql版本有254位数字的限制, 并把数字打包存储成字符串(每个数字一个字节)。 在运算中, 这些版本的mysql一般不需要使用到这么多的空间, 因为DECIMAL只是表示存储格式, 在计算中是通过转换成DOUBLE类型的数字来进行的。有多种方式指定浮点类型字段需要的精确度, 这使得Mysql会悄悄的选择另外一种不同的数据类型或近似值来存储。 这些精确度修饰符不是标准的, 所以建议通过选择数据类型而不是精度。

一般情况下, 存储相同范围数值的浮点数类型比DECIMAL类型所使用的空间要小些; 1个FLOAT字段用4个字节的存储,DOUBLE用8个字节的来存储更高精度和更大范围的数值。 其实对于整数类型来说, INTERGER指定的其实是存储类型, mysql其实用的是DOUBLE来进行存储和内部计算的。 因为DECIMAL需要占更多的存储空间和需要更多的计算资源, 因此除非在一些需要准确计算结果的场合–比如存储财务数据外, 尽量不是使用。

0
投稿

猜你喜欢

  •     表单外观的美化很多时候,我们仅仅为了实现数据采集这个功能来使用表单,常看到的表单都是“千人一面”、毫无
  • 问一下谁知道如何用 javascript 获取硬盘信息1.获得硬盘当前有几个盘符.2.每个盘符的 大小,已经使用的大小,和没有使用的大小原理
  • JavaScript/Dom中有很多很零碎的东西,让人总是感觉理解的有些“朦胧”,因此,有时候还是应该总结一下,对于Event对象,前两天看
  • 网上找了很多。貌似没什么好的解决办法。自己参考了下。把它直接整成一条SQL语句了。不过字段的格式只允许前面或者后面有字符。中间不允许出现字符
  • 当数据库的数据量读写频繁的时候,我们就要考虑把数据库的读写分开,以提高数据库的使用效率,(当然还有其他用处比如,备份数据),这个时候我们就要
  • 假如你拥有一个庞大的网站,内容又多,那么来访者往往很难找到自己所需要的东东,这时候你就需要一个站内搜索来帮助来访者更快的找到索要的资料了!现
  • 方法很简单,实现原理:使用asp的Request.ServerVariables("HTTP_REFERER") 判断来
  • 本文将介绍使用Dreamweaver来制作滑动菜单的方法,言归正传,废话少说。准备工作如下: 1. 在dw中新建一个空白文档(或者打开你要添
  • 当用户关闭cookie时,通过asp程序提示访客打开,源代码如下:   Dim strCookie, strT
  • 运行环境:IIS脚本语言:VBScript数据库:Access/SQL Server数据库语言:SQL1.概要:不论是在论坛,还是新闻系统,
  • 概述我在教学和实际设计中的一些心得。就不长篇大论了!让大家省些时间,捞干的。尽量通俗易懂。想知道怎样设计标志,就要知道什么是标志?标志:外来
  • 熟悉SQL的人都知道,完成同一个任务,SQL可能有多种写法,但不同写法的查询性能可能会有天壤之别,本文列举出五个查询优化的方法,当然,优化的
  •     你一定很喜欢像QQ或者MSN好友登录提示的效果吧,那么怎么样能在网页中实现呢?asp之家为大家找到了这
  • 有时候,我们在某一重要的时间段需要监控某张表的变化情况,包含插入、更新、删除。举例来说,当我们把数据导出到外部的系统时,我们希望导出的是全部
  • 1、创建存储过程 create or replace procedure test(var_name_1 in type,var_name_
  • 调用bianli()函数,这里是遍历F:盘,bianli("F:\")'这里设置文件夹路径,你可以改为其它文件夹
  • 一、什么是执行计划(explain plan) 执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。 二、如何查看执行计划 1
  • 1:除非你现在已经过了不惑之年了,否则你就一定要保持年轻人特有的激情!这里的激情,包含了那种说不明白的近似于冲动的东西,或者idea。也包含
  • 我想从文件读数据的话,要比直接从数据库快一些吧(个人观点),昨天测试了读出6000条新闻,读数据库用了23579毫秒,读文件只用了123毫秒
  • 本文介绍了在js和asp中使用FileSystemObject(fso)来: 创建、添加或删除数据,以及读取文件; 移动、复制和删除文件;创
手机版 网络编程 asp之家 www.aspxhome.com