zoukankan      html  css  js  c++  java
  • MySQL总结03

    MySQL表的引擎常用的有两种:MyISAM、InnoDB

    MyISAM引擎

    MySQL5.5之前数据库默认的存储引擎都是MyISAM,MySQL5.5之后(包括5.5)用的是InnoDB。
    每一个MyISAM表都对应三个文件,三个文件的文件名相同,但扩展名不同,可以通过文件系统命令查看(file filename):

    • .frm:文件保存表的定义,这个文件不是MyISAM引擎的一部分,而是服务器的一部分

    • .MYD:保存表的数据

    • .MYI:表的索引文件

    InnoDB引擎

    MySQL5.5之后(包括)MySQL使用InnoDB引擎。InnoDB的表存储只有一个文件,这个文件可以通过配置MySQL参数实现分表文件存储。它和MyISAM的最大
    区别是,InnoDB具有事物的完整性和更高的并发性以及行级锁定特点

    MyISAM引擎特点

    • 不支持事物(事物是指逻辑上的一组操作,要么全成功,要么全失败)

    • 表级锁定(更新时锁定整个表):其锁定机制是表级索引,这虽然可以让锁定的实体很小,但同时大大降低了其并发性能

    • 读写互相阻塞:不仅会在写入的时候阻塞读取,MyISAM还会在读取的时候阻塞写。但是读本身并不会阻塞另外的读

    • 只会缓存索引:MyISAM可以通过key_buffer_size缓存索引,以大大提高访问性能磁盘IO,但这个缓存区只会缓存索引,不会缓存数据

    • 读取速度较快,暂用资源相对少

    • 不支持外键索引,但支持全文索引

    MyISAM引擎调优

    • 设置合适的索引(缓存机制)

    • 调整读写优先级,根据实际需求确保重要操作更优先执行

    • 启用延迟插入改善大批量写入性能(批量)

    • 尽量顺序操作让insert数据都写入到尾部,减少阻塞

    • 降低并发数(减少对MySQL访问)

    • 对于相对静态的数据库数据,充分利用memcached或query cache服务提高访问效率
      查看query cache配置: grep query my.cnf

    • 主从同步的主库使用InnoDB,从库使用MyISAM

    InnoDB引擎特点

    InnoDB引擎调优

    更改表的引擎

    alter table tablename engine=INNODB/MYISAM

  • 相关阅读:
    C++之友元机制(友元函数和友元类)
    C++之全局函数和成员函数互相转换
    C++之面向对象初探----对象管理模型(关键是this指针)
    C++之const类成员变量,const成员函数
    C++之static类成员,static类成员函数
    c++之函数值传递和引用传递解析----关键在于理解函数return的实现机制(内存分配)
    C++之new和delete
    C++之构造函数、参数列表、析构函数
    C++之匿名对象解析
    C结构体、C++结构体、C++类的区别
  • 原文地址:https://www.cnblogs.com/nwu-edu/p/9428389.html
Copyright © 2011-2022 走看看