zoukankan      html  css  js  c++  java
  • 《深入浅出Mysql》——第八章 选择合适的数据类型

     

     

     

     

     

     

     一般在保存少量字符串的时候,我们会选择 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,这是上面的数值 在使用单精度浮点数表示时,产生了误差。这是浮点数特有的问题。因此在精度要求比较高 的应用中(比如货币)要使用定点数而不是浮点数来保存数据。

     

     

  • 相关阅读:
    15-07-23 HTML--标签
    15-07-22 数据库--存储过程、触发器
    15-07-19数据库练习题答案
    15-07-17 数据库练习题
    15-07-20 数据库--索引视图编程
    15-07-17 数据库--高级查询
    c#语句
    SQL 触发器
    SQL 存储过程
    SQL 循环语句
  • 原文地址:https://www.cnblogs.com/JasonPeng1/p/12234410.html
Copyright © 2011-2022 走看看