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
投稿

猜你喜欢

  • MySQL 基础常用命令总结

    2024-01-22 16:35:40
  • selenium在scrapy中的使用代码

    2021-11-24 09:34:16
  • Python利用QQ邮箱发送邮件的实现方法(分享)

    2023-01-06 23:23:25
  • SQL Server 2016 配置 SA 登录教程

    2024-01-13 10:17:53
  • PHP的mysqli_stmt_init()函数讲解

    2023-06-08 05:04:51
  • Python读取YUV文件,并显示的方法

    2023-03-19 11:44:13
  • 对比MySQL中int、char以及varchar的性能

    2024-01-22 13:17:52
  • MySql使用mysqldump 导入与导出方法总结

    2024-01-23 13:26:32
  • Python和Excel的完美结合的常用操作案例汇总

    2021-12-30 05:15:37
  • Jupyter Notebook添加代码自动补全功能的实现

    2021-01-07 07:31:12
  • 如何使用electron-builder及electron-updater给项目配置自动更新

    2024-04-17 10:02:04
  • Python实现上传Minio和阿里Oss文件

    2023-10-29 11:04:07
  • python实现的DES加密算法和3DES加密算法实例

    2023-04-28 07:44:01
  • Python3 获取文件属性的方式(时间、大小等)

    2022-05-06 09:13:41
  • Python async模块使用方法杂谈

    2023-12-12 14:46:36
  • Python使用matplotlib 画矩形的三种方式分析

    2022-04-06 05:49:17
  • Python复制文件操作实例详解

    2023-10-22 19:15:29
  • Django框架实现的简单分页功能示例

    2022-05-16 08:25:43
  • 基于Python制作公交车站查询系统

    2022-10-03 04:34:03
  • python中的路径拼接问题

    2021-02-06 11:28:56
  • asp之家 网络编程 m.aspxhome.com