zoukankan      html  css  js  c++  java
  • MySQL中列类型的选择需要注意的问题

    1. 在精度要求高的应用中,建议使用定点数来存储数值,以保证结果的准确性。

    要用decimal不要使用float

    mysql> create table t1(price float(9,2),dprice decimal(9,2));
    mysql> insert into t1 values(1234567.55,1234567.55);

    2. 录入手机号带来的问题

    使用char(11)会占用较多的字节,gbk占用2字节*11,utf-8占用3*11。

    可以使用bigint,宽度是20,只占用8个字节。

    3. ip地址也可以采用int整型

    使用函数进行转换:

    inet_aton():把ip地址转换成整数

    inet_ntoa():把整数转换成ip地址。

    IPv4存储为int型

    PHP:ip2long(), long2ip()

    MySQL: inet_aton(), inet_ntoa();

    4. 根据需求选择最小整数类型

    比如用户在线状态:离线,在线,离开,忙碌,隐式等,可以采用0,1,2,3,来表示。

    5. 避免字段内容为null,原因:null不利于索引,要用特殊的字节来标注,在磁盘上占据的空间其实更大

    NULL的判断只能用is null,is not null

    NULL影响查询速度,一般避免使值为NULL

    mysql> create table t3(name char(1) not null default '')engine myisam;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> create table t4(name char(1))engine myisam;
    Query OK, 0 rows affected (0.01 sec)
  • 相关阅读:
    C# Path 目录
    Maxscript 窗体与结构体this的传递
    python---文件操作
    python---数据类型---集合
    python---购物车---更新
    python---三级菜单
    python---数据类型---字典
    python---数据类型---字符串
    python---购物车
    python---数据类型---列表
  • 原文地址:https://www.cnblogs.com/chenjiacheng/p/6522265.html
Copyright © 2011-2022 走看看