zoukankan      html  css  js  c++  java
  • mysql系列:数据库范式与mysql引擎

    mysql数据库设计流程

    业务分析-->逻辑设计-->数据类型-->对象命名-->建立库表

    宽表模式存在的问题

    • 数据插入异常:部分数据由于缺失之间信息而无法写入表中
    • 数据更新异常:修改一行中某列的值时,同时修改了多行数据
    • 数据删除异常:删除某一数据时不得不删除另一数据
    • 数据冗余:相同的数据在一个表中出现了多次

    数据库第一范式

    • 第一范式:表中的所有字段都是不可再分的

    数据库第二范式

    • 第二范式:表中必须存在业务主键,并且非主键依赖于全部业务主键

    数据库第三范式

    • 第三范式:表中的非主键列之间不能相互依赖

    mysql关联的表越多,查询性能会越差

    反范式化设计

    减少查询的数据表,提高查询效率

    MYSQL常见的存储引擎

    引擎名称 事务 说明
    MYISAM N Mysql5.6之前的默认引擎,最常用的非事务型存储引擎,堆表的方式存储,存储没有特别的顺序,没有聚型索引的概念,叶子节点直接指向的物理地址,大量读写因为是表锁会导致阻塞(不推荐)
    CSV N 以SCV格式存储的非事务型存储引擎,读写对整个表加锁,使用它作为不同系统的数据交换,不建议核心业务系统使用
    Archive N 只允许查询和新增数据而不允许修改的非事务型存储引擎,归档和日志类使用,占用的物理空间小
    Memory N 是一种易失性非事务型存储引擎,读写速度非常快,主要用于存储一些大型sql临时结果存储集
    INNODB Y 最常用的事务型存储引擎

    Innodb存储引擎的特点

    1. 事务型存储引擎支持ACID

    不要在系统内混合使用事务型存储引擎和非事务型存储引擎,一旦发生回滚,破坏事务的一致性和完整性

    1. 数据按主键聚集存储(使用自增ID作为主键)
    2. 支持行级锁及MVCC(多版本并发控制,进一步避免读写的互相阻塞)
    3. 支持Btree和自适应Hash索引
    4. 支持全文和空间索引
  • 相关阅读:
    docker使用阿里云Docker镜像库加速
    FastDFS文件系统(二) fastdfs和其他文件系统区别
    CentOS7—HAProxy安装与配置
    安装完CentOS 7 后必做的七件事
    让一个端口同时做两件事:http/https和ssh
    Hyper-v之利用差异磁盘快速创建多个虚拟机
    MySQL5.7安装与配置(YUM)
    CentOS7 配置阿里云yum源
    60款顶级大数据开源工具
    ubuntu设置分辨率
  • 原文地址:https://www.cnblogs.com/myt2000/p/11263788.html
Copyright © 2011-2022 走看看