首页 > 数据库技术 > 详细

《深入浅出Mysql》——第八章 选择合适的数据类型

时间:2020-01-26 17:47:21      阅读:104      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 一般在保存少量字符串的时候,我们会选择 CHAR 或者 VARCHAR;而在保存较大文本时, 通常会选择使用 TEXT 或者 BLOB

,二者之间的主要差别是 BLOB 能用来保存二进制数据,比 如照片;而 TEXT 只能保存字符数据,比如一篇文章或者日记。TEXT 和 BLOB 中有分别包括 TEXT、MEDIUMTEXT、LONGTEXT 和 BLOB、MEDIUMBLOB、LONGBLOB3 种不同的类型,它们 之间的主要区别是存储文本长度不同和存储字节不同,用户应该根据实际情况选择能够满足 需求的最小存储类型。

技术分享图片

 

 下面的例子描述了 OPTIMIZE TABLE 的碎片整理功能。 

技术分享图片

 

 

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 。合 成的散列索引对于那些 BLOB 或 TEXT 数据列特别有用。用散列标识符值查找的速度比搜索 BLOB 列本身的速度快很多。

简单来说,合成索引就是根据大文本字段的内容建立一个散列值,并把这个值存储在单独的 数据列中,接下来就可以通过检索散列值找到数据行了  

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 定点数不同于浮点数,定点数实际上是以字符串形式存放的,所以定点数可以更加精确 的保存数据。如果实际插入的数值精度大于实际定义的精度,则 MySQL 会进行警告(默认 的 SQLMode 下),但是数据按照实际精度四舍五入后插入;如果 SQLMode 是在 TRADITIONAL (传统模式) 下,则系统会直接报错,导致数据无法插入。在MySQL中,decimal (或numberic) 用来表示定点数。

从上面的例子中可以看到,c1 列的值由 131072.32 变成了 131072.31,这是上面的数值 在使用单精度浮点数表示时,产生了误差。这是浮点数特有的问题。因此在精度要求比较高 的应用中(比如货币)要使用定点数而不是浮点数来保存数据。

技术分享图片

 

 技术分享图片

 

 技术分享图片

《深入浅出Mysql》——第八章 选择合适的数据类型

原文:https://www.cnblogs.com/JasonPeng1/p/12234410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!