Mysql第二章 存储引擎

1、本章目标
    存储引擎
    数据类型(重点)
2、存储引擎
    在关系型数据库中,数据存储在表中,表由行和列组成。
    开发中,可能需要各种不同的表,有的表简单,有的表复杂,有的表读取快,有的读取数据慢,有的表更新快等。
    根据对数据的不同的处理需求,使用不同的存储引擎,可以将MySQL数据库的性能发挥到最大。
    查询MySQL数据库中的存储引擎:show engines;
    mysql5.5 默认使用的存储引擎是:innodb
        MyISAM:
            MySQL默认数据库引擎,不支持事务、外键,速度快,用于无事务要求或者select、insert为主的场景。
            会创建3个文件.frm(存储表定义),.MYD(MYData,存储数据),.MYI(MYIndex,存储引擎)。
            支持3中存储格式,静态(固定长度)表,动态表,压缩表。
                静态表是默认格式,固定长度速度快,但是占空间大。记录长度不够时会用空格填充,读取数据时会清除空格,存在吃尾部空格的情况。
                动态表包含变长字段,记录不是固定长度,占用空间少,但是频繁更新和删除会产生随便,需要定期整理,并且在出现故障时恢复比较困难。
                压缩表由mysiampack工具创建,空间小。
        InnoDB:
            提供了具有提交、回滚、崩溃恢复能力的事务安全,但是会占用更多空间用以保存数据和索引。
            支持外键,创建外键的时候,要求父表必须有对应的碎银,子表在创建索引的时候也会自动创建对应的索引。
            存储表和索引有两种方式,
                使用共享表空间存储,表结构保存在.frm文件中,数据和索引在innodb_data_home_dir和innodb_data_file_path定义的表空间中,可以是多个文件。
                使用多表空间存储,表结构保存在.frm文件中,每个表的数据和索引单独保存在.ibd中。
3、数据类型
    日期
        date   2019-3-20
        datetime 2019-3-20 10:27:37
        timestamp 时间戳,类datetime相似
    数值
        整型(整数)
            int
        浮点型(小数)
            float
            double
            decimal(有效位,精度)     decimal(5,2)
    字符串
        char(n)            固定
        varchar(n)        可变
            char(10)和varchar(10)  同时 存储 'abc',前者占用10个字符空间,后者占3个字符空间
        text
    详细请参照:https://www.cnblogs.com/-xlp/p/8617760.html
4、属性
    主键:primary key
    标识列(自增):auto_increment
    唯一:unique
    默认:default
    非空:not null
    外键:foreign key 外建名(字段名) references 主表(字段)
    检查:check,MySQL没有实现check约束的功能,若要实现,可以使用后面学习的触发器
    获取当前系统时间:now(),sysdate()

posted @ 2019-03-20 20:31  星梦泪痕  阅读(90)  评论(0)    收藏  举报