MYSQL数据库表设计与优化(二)

来源:Asp之家 时间:2010-10-25 20:12:00 

决定数据类型的第一步是定义所存数数据的分类: 数值型, 字符串型还是临时型等;除了一些特别的并不是那么直观的外, 这通常是很直观的。

接下来是选择具体的数据类型, 许多mysql的数据类型能存储同一种数据, 但是在可存储的数据范围, 准确度或者存储空间有些不同。 有些数据类型可能还有一些特殊的行为属性。比如, DATETIME和TIMESTAMP都能存储日期和日期, 而且都是准确到秒; 然而, TIMESTAMP占的数据空间只有DATETIME的一半, 而且是时区敏感的,同时有一些自动修改的机制。 另一个方面, 它能表示的数据范围要小些, 有些属性在某些时候是比较麻烦的。

这里只讨论了一些基本的数据类型, 实际上, mysql为了考虑兼容性, 一些数据类型是其他数据类型的别名而已, 例如,INTEGER, BOOl和NUMERIC, 他们是一样的, 只是名字不同而已; 这些数据类型有时候容易叫人困惑, 但倒是多性能的影响不大。

整数

数字分为整数和实数, 如果存储整型数,使用正型数类型:TINYINT, SMALLINT, MEDIUMINT, INT, or BIGINT, 分别是8, 16, 24, 32, 和64位, 能存储的数值范围是–2(N–1) to 2(N–1)–1, 其中N是位数。

整数有一个可选的属性UNSIGNED, 使用这个属性使得无法表示负数, 而可表示的数值上限大体增加了1倍, 比如, TINYINT UNSIGNED 能存储0 到255之间的值, 而不是TINYINT的–128 到 127.

有符号和无符号数使用的数据存数空间是一样的, 性能也差不多, 所以在使用时根据数据范围选择即可。

数据类型的选择通常会影响mysql数据在磁盘,内存中的存储, 然而,正型数的计算通常是以64为的BIGINT进行的,即使是在32位机器上。 (一些统计函数是例外的情况,这些函数通常使用DECIMAL和DOUBLE进行计算 )

mysql允许在选择整型的时候指定一个宽度,如INT(11), 这对于许多应用来说是没有实际意义的:它并不限制值的范围, 只是简单的用来在交互性工具, 比如命令行上指示数值输出的字符宽度。 从存储和计算的角度来看, INT(1)和INT(20)是一样的。

Falcon存储引擎与其他的引起不一样, MySQL AB按照自己的格式来存储整数, 用户多数据的存储大小和格式没有任何控制。一些第三方的存储引擎, 如Brighthouse, 也有自己的存储格式和压缩方法。

标签:mysql,数据库,设计
0
投稿

猜你喜欢

  • HTML5 的五个激动人心的特性

    2009-01-02 17:36:00
  • 日文片假名导致 Access 搜索“内存溢出”

    2009-07-07 22:23:00
  • 4款Javascript放大镜特效脚本

    2009-10-14 20:46:00
  • 61条面向对象设计的经验原则

    2008-05-08 13:05:00
  • 怎样处理 MySQL中与文件许可有关的问题

    2008-11-27 16:12:00
  • SQL 字母数字混合型字段 按里面的数字排序

    2010-04-23 18:18:00
  • Jquery中Ajax 缓存带来的影响的解决方法

    2011-05-21 16:14:00
  • 20个Javascript手风琴折叠菜单

    2009-10-12 12:09:00
  • Opera下cloneNode的bug

    2007-11-23 11:40:00
  • 段正淳的css笔记(4)css代码的简写

    2007-11-01 22:03:00
  • 高效的删除HTML标签的函数

    2009-02-26 13:02:00
  • WEB标准与XHTML 1.0 Transitional等文档类型介绍

    2007-10-20 21:18:00
  • asp如何在页面中实现对电子信箱的访问?

    2010-06-26 12:34:00
  • asp_数据库操作封装

    2010-04-03 21:00:00
  • ACCESS转SQL Server2000需要注意的问题

    2007-11-18 15:25:00
  • 提高asp程序访问速度的方法

    2008-10-23 16:37:00
  • W3C发布HTML 5草案 最终版将于2010年敲定

    2008-01-26 19:16:00
  • Oracle数据仓库的分层管理器解决方案开发者网络Oracle

    2010-07-16 13:08:00
  • 在IE下获取object(ActiveX)的Param

    2009-05-15 13:07:00
  • css样式命名规则

    2008-04-30 12:31:00
  • asp之家 网络编程 m.aspxhome.com