zoukankan      html  css  js  c++  java
  • mysql中engine=innodb和engine=myisam的区别

    MyISAM
    优点:速度快,磁盘空间占用少;某个库或表的磁盘占用情况既可以通过操作系统查相应的文件(夹)的大小得知,也可以通过SQL语句SHOW TABLE STATUS查得
    缺点:没有数据完整性机制,即不支持事务和外键

    InnoDB
    优点:支持事务和外键,数据完整性机制比较完备;可以用SHOW TABLE STATUS查得某个库或表的磁盘占用
    缺点:速度超慢,磁盘空间占用多;所有库都存于一个(通常情况)或数个文件中,无法通过操作系统了解某个库或表的占用空间

    BDB
    优点:支持事务,不支持外键,由于在事务支持的基础上,外键可以在数据库的客户端(可能是最终客户的服务器端,例如php)间接实现,所以数据完整性仍然是有保障的;
    缺点:速度慢,磁盘占用多;不能通过SHOW TABLE STATUS查询某个库或表的空间占用;用操作系统可了解库相应的文件夹,或表相应的文件的大小,但由于BDB表总是还要产生log文件,而实际的磁盘占用应该把log文件也包含在内,所以用操作系统查得某库或表的大小总是小于实际占用空间。

    时间类型

    mysql(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。

    几种类型比较如下:

    日期时间类型 占用空间 日期格式 最小值 最大值 零值表示
     DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59  0000-00-00 00:00:00
     TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  19700101080001 2038 年的某个时刻 00000000000000
     DATE  4 bytes  YYYY-MM-DD 1000-01-01  9999-12-31  0000-00-00
     TIME  3 bytes  HH:MM:SS  -838:59:59 838:59:59  00:00:00
     YEAR  1 bytes  YYYY 1901  2155  0000

    除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:

    current_timestamp() 
    ,current_timestamp 
    ,localtime() 
    ,localtime 
    ,localtimestamp    -- (v4.0.6) 
    ,localtimestamp() -- (v4.0.6)

    这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

  • 相关阅读:
    effective c++ 笔记 (30-31)
    设计模式 笔记 装饰模式 Decorator
    设计模式 笔记 组合模式 Composite
    设计模式 笔记 外观模式 Facade
    effective c++ 笔记 (26-29)
    设计模式 笔记 桥接模式 Bridge
    设计模式 笔记 适配器模式 Adapter
    算法导论 第二章作业
    设计模式 创建型模式实践
    设计模式 笔记 单例模式 Singleton
  • 原文地址:https://www.cnblogs.com/suntp/p/9323285.html
Copyright © 2011-2022 走看看