• MySQL存储引擎


    什么是存储引擎?
    存储引擎就是一套程序,负责将用户的表示层(sql语句)数据转换成物理层(数据库数据文件)数据的一套程序。
     
    MySQL是插件式的存储引擎. 什么是插件式存储引擎?
    MySQL为了支持更灵活的架构,它把存储引擎做成一个插件式的,任何第三方都可以开发自己的插件,
    来用于存储引擎完成从表示层到物理层,或物理层到表示层的双向转换。
    因此MySQL拥有多种不同的存储引擎,不同的存储引擎所支持的特性是不一样的,
    有的存储引擎支持事务,有的则不支持等等。MySQL支持我们自由选择所使用的存储引擎,但Oracle不支持。
     
    MySQL的两个比较常见的存储引擎
    存储引擎也被称为表类型
    SHOW ENGINES; # 查看当前数据库支持的所有存储引擎
    SHOW TABLE STATUS LIKE '表名'G # 可以查看到一张表的属性信息,可以看到这张表是什么存储引擎

    MyISAM存储引擎(无事务,表锁):

        MySQL5.5.8之前默认存储引擎
        不支持事务
        MyISAM性能比较好,特别适用于查询比较多,而修改比较少的场景,所以特别适合数据存储。
        每表三个文件
            .frm: 表结构
            .MYD: 表数据
            .MYI: 表索引
     
    InnoDB存储引擎(事务,行锁):
        MySQL5.5.8之后,Oracle收购MySQL之后,默认的存储引擎
        支持事务 
        InnoDB特别适用于在线事务处理系统(查询和修改都比较多),比如论坛(随时有人发帖,有人看帖)
        所有表共享一个表空间文件(不推荐)
        建议: 每表一个独立的表空间文件
            .frm: 表结构
            .idb: 表空间(表数据和表索引)
     
     
    使用InnoDB引擎要做的事情
    # 每表一个独立的表空间文件(推荐)
    innodb_file_per_table
    # 设置InnoDB表空间文件的存储路径
    innodb_data_home_dir="D:/MySQL5.5/InnoDB"
     
    db.opt是什么?
    我们发现,每个数据库中都存在一个db.opt的文件,它是一个ASCII text文件,它定义了这个数据库使用的字符集和排序规则
    它的内容类似下面这样
    default-character-set=gbk
    default-collation=gbk_chinese_ci
  • 相关阅读:
    分布式系统笔记
    Paxos算法细节详解(一)
    Java G1学习笔记
    Spring Boot 的 10 个核心模块
    k8s 重点
    毕玄:阿里十年,从分布式到云时代的架构演进之路
    netty原理解析
    JVM调优总结(一):基本概念
    《快学 Go 语言》第 16 课 —— 包管理 GOPATH 和 Vendor
    Oracle 检查表空间使用情况
  • 原文地址:https://www.cnblogs.com/xiaofengchu/p/9495537.html
Copyright © 2020-2023  润新知