• MySQL存储引擎简介


    一、前言

    本文主要介绍MySQL主要存储引擎MyISAM和InnoDB的区别,特性,优缺点,应用等内容。同时举例介绍了MyISAM和InnoDB引擎的修改切换方法
     

    二、MySQL存储引擎种类

    MySQL存储引擎有MyISAM、InnoDB、MERGE、MEMORY、FEDERATED、ARCHIVE、CSV、BLACKHOLE等

    在此主要介绍今天我们常用的MyISAMInnoDB

    1、MyISAM

    MyISAM管理非事务表,它提供高速存储和检索,以及全文搜索能力,MySQL 5.5版本以前,它是默认引擎。

    MyISAM主要特性:

    • 不支持事务,宕机时会破坏表;

    • 使用较小的内存和磁盘空间,执行速度比 InnoDB类型更快;

    • 基于表的锁,表级锁;

    • mysql 只缓存index索引, 数据由OS缓存。

    MyISAM适用于:

    • 日志系统

    • 大部分都是读的操作。 比如:门户网站,企业站点,个人博客,www.hello2099.com等

    • 没有事务 ,低并发的应用。

    2、InnoDB

    MySQL发展到今天,InnoDB引擎已经作为绝对的主力,除了像大数据量分析等比较特殊领域需求外,它适用于众多场景。InnoDB是MySQL下使用最广泛的引擎,它是基于MySQL的高可扩展性和高性能存储引擎,从5.5版本开始,它已经成为了默认引擎。

    InnoDB主要特性:

    • 支持ACID,简单地说就是支持事务完整性、一致性;

    • 支持行锁,以及类似ORACLE的一致性读,多用户并发;

    • 独有的聚集索引主键设计方式,可大幅提升并发读写性能;

    • 支持外键;

    • 支持崩溃数据自修复;

    InnoDB适用于:

    • 需要事务的应用

    • 高并发的应用

    • 需要自动灾难恢复的应用

    • 较快速的基于主键的操作的应用

    注意问题

    1. 所有InnoDB数据表都创建一个和业务无关的自增数字型作为主键,对保证性能很有帮助;

    2. 杜绝使用text/blob,确实需要使用的,尽可能拆分出去成一个独立的表;

    3. 时间建议使用 TIMESTAMP 类型存储;

    4. IPV4 地址建议用 INT UNSIGNED 类型存储;

    5. 性别等非是即非的逻辑,建议采用 TINYINT 存储,而不是 CHAR(1),bool;

    6. 存储较长文本内容时,建议采用JSON/BSON格式存储;

    3、MyISAM与InnoDB的区别

    • MyISAM不支持事务,InnoDB是事务类型的存储引擎当我们的表需要用到事务支持的时候,那肯定是不能选择MyISAM了。

    • MyISAM只支持表级锁, InnoDB支持行级锁和表级锁默认为行级锁。

    表级锁:直接锁定整张表,在锁定期间,其他进程无法对该表进行写操作,如果设置的是写锁,那么其他进程读也不允许。

    • MyISAM引擎不支持外键,InnoDB支持外键。

    • InnoDB是为处理巨大数据量时的最大性能设计,它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。

    • MyISAM支持全文索引(FULLTEXT),InnoDB不支持。

    • MyISAM引擎的表的查询、更新、插入的效率要比InnoDB高

     

    三、如何选择合适的存储引擎

    选择标准可以分为:


    (1)是否需要支持事务;
    (2)是否需要使用热备;
    (3)崩溃恢复:能否接受崩溃;
    (4)是否需要外键支持;


    然后按照标准,选择对应的存储引擎即可

    参考博客:

    https://www.hello2099.com/647.html

    知道、想到、做到、得到
  • 相关阅读:
    用python实现批量替换.doc文件文件内容
    记我是如何通过Security+考试的
    去哪儿笔试羊生羊问题
    CSS作用域问题
    常用的几种清除浮动的方式
    ECE转专业找工作经历-从零电面到facebook offer
    面经-Bloomberg
    题解-Linked List Cycle II
    自我介绍
    解题技巧-发现子结构
  • 原文地址:https://www.cnblogs.com/Durant0420/p/15349217.html
Copyright © 2020-2023  润新知