zoukankan      html  css  js  c++  java
  • 数据类型

    int:

    select pow(2,31) - 1 有符号最大值

    select pow(2,32)  无符号,最大值

    select pow(2,31)  负数最大值

    int 无符号最大42亿 也就够用来 做主键了。(每天写入不超过100万就没事)

    每天写100万,能写10年。

    DB:table(字段,索引),存储过程,触发器,事件,视图(表就是视图)

    decimal  会转成浮点数进行运算,会出现四舍五入情况。(可以考虑存成int 单位为分)

    前面整个字节长度,后面是 小数点占用的位数。

    decimal(10,0)占用10个字节==int(10)占用4个字节,不要犯这种错。

    bit bit(M) #m用于表示,有多少个二进制位(0101),M可以支持0-64位,varbinary可以存储更多(select 不到,程序可读)。

    int(4) 不是允许存4位,只是显示宽度。

    int(4) zerofill 写入数字5,显示:0005

    int(11) auto_increment 每次自增加1

    datetime  占用4个字节(推荐使用,5.6及以后可以更新当前时间)

    日期转换:select cast('2017-04-10 14:38:14.0697' as date);,select now()+0

    5.6新增两个函数可以打印出毫秒:

    select now(4),select microsecond(now(4)); 

    char(10),存储1个字符自动补全到10个字符

    varchar(10),存储1个字符就占一个字符,低于255字节需要1个字节记录格式信息overhead,大于255字节需要2个字节,。varchar最多存储65535字节

    innodb_file_format #antelope格式可存储255字节,之后在overflow,barracuda超过20个字节,存储到其他page上,设计时把字符列放到最后。因为最小的列在一个page上,更好读出来。

    myisam 索引长度最高1000,innodb索引长度最高767

    longblob(binary)没有字符集校验,longtext有字符集校验。

    varchar,utf8字符集。最多存储(65535-2)/8

    图片存储到binary&blob 等二进制字段里面,(图片存储可以调用mongo的DFS,百度云,360云盘)

    文件格式b开头,varchar 占用20个字节。

    索引列不要使用更新频繁的列。where 条件索引选择度,每个字段加上not null。

    超过30%可能不走索引。选择度30%以下可以建立索引,控制在10%最好。查询超过30%一般不建索引。

    多列索引(a,b,c)相当于(a),(ab),(abc)

     两表做join,字符类型或字符集不一样,面临类型转换,索引失效。

    select * from tb where i_c1 = and v_c2 (两个列都是索引,优化器使用哪个?)实际上选哪个都不对。SQL:成本优化,RBO:基于规则 rule base opt(谁在前使用谁)。CBO:基于代价 cost base opt。

    新版本有index merge,早期也有比较坑。。5.6和5.7好多都在使用RBO,没有直方图。

  • 相关阅读:
    文艺青年会看这本《迷局》么?
    看文艺青年怎么玩微信客户端
    Sublime Text有哪些使用技巧(转)
    C++ 关键字 explicit, export, mutable
    move语义和右值引用
    C++11 std::function用法
    function adapter(函数适配器)和迭代器适配器
    for_each()的返回值
    C++11的一些新特性
    setw和setfill控制输出间隔
  • 原文地址:https://www.cnblogs.com/xxmysql/p/6477344.html
Copyright © 2011-2022 走看看