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, 也有自己的存储格式和压缩方法。
猜你喜欢
- 前一段时间有发过一个简单的JMAIL邮件发邮件的代码,今天就把这个代码做一个具体的注解,并增加了另外两个格式的代码,并举几个简单
- 一套javascript摇奖程序,随机6+1选号码,类似游戏彩票摇奖效果,实时滚动。截图:<style>.inp{ width:
- 如何向前端推送用户请求的信息?postinfo.htm<head><title>asp教程之回应用户请求信息&nbs
- 网站用户为什么注册?这个问题在平时我们讨论的并不多。我们常常单纯的在设想如何简化注册流程,如何从细节的关怀入手避免用户注册时填写错误信息造成
- 首先要说明的是,这个标题有点标题党的意思,这个 bug 也存在于 IE8 下,在 IE6 和 IE7 下正常。之前写过两篇关于 I
- 打开在节点中加入一句:max_allowed_packet=5M 将MySQL的容量扩大到5M  
- 1.linux下启动mysql的命令:mysqladmin start/ect/init.d/mysql start (前面为mysql的安
- 代码如下:var obj = document.getElementById("name"
- 各位想必都知道,onfocus="this.blur()"这条代码能消除链接时的虚线框,但你有没有想过,如果你的网页上有
- 原文:Five quick JavaScript tips真是五个很quick的小提示:1.只在<form>元素上使用submi
- 一段这样的JavaScript代码,猜猜结果如何?var i = 0, m =
- 前段时间冷空气突袭的时候,据说郊区密云的雪积得挺厚,但北京城内除了飘了一点小雪粒,毫无动静。应该是气温过高所致,我在慈云寺桥附近拍下的照片可
- 以前写过一个标签效果,外观虽然好看,但代码不太规范,实现的方法比较繁冗。需要注意的是标签的背景图,两种状态,激活的标签背景为蓝色,反之为灰色
- 根据一些CSS写作经验,如何提高渲染效率及所占用消耗的资源,我们来浅谈一下CSS的渲染效率,书写高效的CSS。1、十六进制的颜色值对位数与大
- 数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。通俗地说,数据库就是一个按照数据结构来组
- 一个拖动层和Onmouse自动下拉效果,IE支持,不支持ff。下面所示的效果四个小块可以拖动到页面任意点,大黑块可以连同四个小块随动。<
- 在使用SQL Server 的过程,中由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导出,导入是极为常见的操作.我
- 首先是三张表, CNo对应的是课程,在这里我就粘贴了。主表人名表按照常规查询SELECT s.SName, c.CName,s2.SCgra
- 不是很难哦,我们现在就可以实现VBScript在服务器端验证,就是下面的函数:<%FUNCTION TestString(S
- Variant变量一般会将其代表的数据子类型自动转换成合适的数据类型,但有时候,自动转换也会造成一些数据类型不匹配的错误.这时,可使用转换函