mysql中decimal和double的区别

mysql中decimal和double的区别,第1张

实数是带有小数部分的数字。然而,它们不只是为了存储小数部分,也可以使用
DEClMAL 存储比 BIGINT还大的整数。 MySQL 既支持精确类型,也支持不精确类型。
FLOAT 和 DOUBLE 类型支持使用标准的浑点运算进行近似计算。如果需要知道浮点运算是
怎么计算的,则需要研究所使用的平台的浮点数的具体实现。
DECIMAL 类型用于存储精确的小数。在 MySQL 50 和更高版本, DECIMAL 类型支持精确 计算。 MySQL 41 以及更早版本则使用浮点运算来实现 DECIAML 的计算,这样做会因为 精度损失导致一些奇怪的结果。在这些版本的 MySQL 中,DEClMAL 只是一个"存储类型"。
因为 CPU 不支持对 DEClMAL 的直接计算,所以在 MySQL 50 以及更高版本中, MySQL 服务器自身实现了 DECIMAL 的高精度计算。相对而言, CPU 直接支持原生浮点计算,所 以浮点运算明显更快。
浮点和 DECIMAL 类型都可以指定精度。对于 DECIMAL 列,可以指定小数点前后所允许的 最大位数。这会影响列的空间消耗。 MySQL 50 和更高版本将数字打包保存到一个二进 制字符串中(每 4个字节存 9个数字)。例如, DEClMAL(18 ,9)小数点两边将各存储 9个 数字,一共使用 9 个字节:小数点前的数字用 4 个字节,小数点后的数字用 4 个字节, 小数点本身占 1个字节。
MySQL 50 和更高版本中的 DEClMAL 类型允许最多 65个数字。而早期的 MySQL 版本中 这个限制是254个数字,并且保存为未压缩的字符串(每个数字一个字节)。然而,这些(早 期)版本实际上并不能在计算中使用这么大的数字,因为 DECIMAL 只是一种存储格式: 在计算中 DEClMAL 会转换为 DOUBLE 类型。
有多种方法可以指定浮点列所需要的精度,这会使得 MySQL 悄悄选择不同的数据类型, 或者在存储时对值进行取舍。这些精度定义是非标准的,所以我们建议只指定数据类型, 不指定精度。
浮点类型在存储同样范围的值时,通常比 DECIMAL 使用更少的空间。 FLOAT 使用 4个字 节存储。 DOUBLE 占用8个字节,相比 FLOAT有更高的精度和更大的范围。和整数类型一样, 能选择的只是存储类型 IMySQL 使用 DOUBLE 作为内部浮点计算的类型。
因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时才使用
DECIMAL一一例如存储财务数据。但在数据量比较大的时候,可以考虑使用 BIGINT 代替
DECIMAL,将需要存储的货币单位根据小数的位数乘以相应的倍数即可。假设要存储财
务数据精确到万分之一分,则可以把所有金额乘以一百万,然后将结果存储在 BIGI町里,
这样可以同时避免浮点存储计算不精确和 DECIMAL 精确计算代价高的问题。

sendmail的配置文件需要配置正确,由于sendmail的配置十分复杂。通常它的配置文件是sendmailcf,位于/etc/mail目录下。由于sendmailcf的语法深奥难懂,很少有人会直接去修改该文件来对Sendmail服务器进行配置。一般通过m4宏处理程序来生成所需的sendmailcf文件。创建的过程中还需要一个模板文件,系统默认在/etc/mail目录下有一个sendmailmc模板文件。

可以根据简单、直观的sendmailmc模板来生成sendmailcf文件,而无需直接编辑sendmailcf文件。可以直接通过修改sendmailmc模板来达到定制sendmailcf文件的目的。这里介绍创建sendmailcf文件的步骤:

(1)备份原有sendmailcf文件
在终端命令窗口运行以下命令:
cp /etc/mial/sendmailcf /etc/mail/sendmailcfBAK

(2)生成sendmailcf文件
根据sendmailmc模板文件产生sendmailcf配置文件,并导出到/etc/mail/目录下:
m4 /etc/mail/sendmailmc > /etc/mail/sendmailcf
(3)重启sendmail服务
[root@ahpeng root] /etc/rcd/initd/sendmail restart

很明显在用m4宏编译工具创建sendmailcf文件比较方便,而且不容易出错,更可以避免某些带有安全漏洞或者过时的宏所造成的破坏。一个sendmailmc模板的大致内容如下:
divert(-1)dnl

include('/usr/share/sendmail-cf/m4/cfm4')dnl
VERSIONID('setup for Red Hat Linux')dnl
OSTYPE('linux')dnl

dnl #
dnl define('SMART_HOST','smtpyourprovider')
dnl #
define('confDEF_USER_ID',''8:12'')dnl
define('confTRUSTED_USER', 'smmsp')dnl
dnl define(′confAUTO_REBUILD′)dnl

这里介绍sendmailmc模板的语法组成:
dnl:用来注释各项,同时dnl命令还用来标识一个命令的结束。
divert(-1):位于mc模板文件的顶部,目的是让m4程序输出时更加精简一些。
OSTYPE ('OperationSystemType'):定义使用的 *** 作系统类型,显然这里应该用linux代替OperationSystemType,注意要用一个反引号和一个正引号把对应的 *** 作系统类型括起来。
define:定义一些全局设置,对于Linux系统,设置了OSTYPE之后,可以定义下面的一些全局参数,如果不定义,就使用默认值。这里举两个简单例子:define('ALIAS_FILE','/etc/aliases')
定义别名文件(alia file)的保存路径,默认是/etc/aliases
define('STATUS_FILE', '/etc/mail/statistics')
sendmail的状态信息文件。
以上只是sendmaimc的一些简单的语法解释,更多的参数含义及其配置信息可以参见>

   3  为新用户开电子邮件账号

   在Linux里为新用户开设电子邮件账户比较简单,只需在Linux系统里新增一个用户即可。单击"主菜单→系统设置→用户和组群"菜单项,打开"Red Hat用户管理器"对话框,单击"添加用户"按钮,在出现的"创建新用户"对话框里指定用户名、登录口令即可,如图3所示。
假设我们添加了一个用户Peter(密码为peter),这样该用户就有了一个邮件地址Peter@YourDomaincom(此处的YourDomaincom用你自己域名代替)。
以上过程也可以在终端命令窗口运行以下命令来实现:
[root@ahpeng root]#adduser peter -p peter
  其实,它是利用磁盘配额功能来实现的。电子邮件的暂存空间是在/var/spool/mail目录下,只要通过磁盘配额设定每一个用户在这个目录下能使用的最大空间即可。
[root@ahpeng root]#/etc/rcd/initd/xinetd reload
设置好以后,就可以在Outlook Express里面设置好邮件账号,以后就可以直接利用Sendmail服务器进行收发邮件了,由于邮件服务器就在本地局域网,所以速度很快。

事件类型: 警告
事件来源: NETLOGON
事件种类: 无
事件 ID: 5781
日期: 2007-8-8
事件: 12:11:56
用户: N/A
计算机: QXHPSRV
描述:
与 DNS 域 'everesportscom' 相关的一个或多个 DNS 记录的动态注册 或删除失败。这些记录被其他计算机用来查找此服务器 (如果指定域是 Active Directory 域,作为域控制器; 如果指定域是应用程序分区,作为LDAP 服务器)。
可能的原因包括:
- 此计算机的网络连接的 TCP/IP 属性包含错误的首选和备用 DNS 服务器的 IP 地址
- 指定的首选和备用 DNS 服务器没有运行
- 要注册的此记录的 DNS 服务器主机没有运行
- 首选和备用 DNS 服务器用错误的根提示配置
- 父 DNS 区域包含到子区域授权的不正确的委派,该委派用于注册失败的 DNS 记录
用户 *** 作
通过从命令行提示符运行 'nltestexe /dsregdns' 或重新启动 Net Logon 服务来修复上述指定的可能的 DNS 记录的错误配置和初始注册或删除。 可以在 Microsoft Windows Server Resource Kit CD 中找到 Nltestexe。
有关更多信息,请参阅在 >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13413519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存