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

MySQL总结03的更多相关文章

  1. MYSQL基础03(日期函数)

    工作中对日期的处理是经常遇到的,需求可能多种多样,因此重点介绍. 1.获取当前日期 select NOW() -- 结果:2015-10-28 22:41:11 ),NOW() -- 结果 2015- ...

  2. MySQL案例03:(MyCAT报错) [ERROR][$_NIOREACTOR-3-RW] caught err: java.lang.OutOfM emoryError: Unable to acquire 131072 bytes of memory, got 0

    上班坐下来没多久,接同事电话说有两台mysql服务器无法访问,其中这两台服务器是mycat服务器+MySQL服务器,具体处理过程如下: 一.错误信息 错误信息01: :: ::, [INFO ][$_ ...

  3. mysql笔记03 查询性能优化

    查询性能优化 1. 为什么查询速度会慢? 1). 如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减 ...

  4. MySQL训练营03

    [任务四] #任务时间# 请于4月6日22:00前完成,在[打卡表格]处打卡.逾期尚未打卡的会被清退. 4.1 MySQL 实战 #学习内容# 数据导入导出 将之前创建的任意一张MySQL表导出,且是 ...

  5. MySQL实战 | 03 - 谁动了我的数据:浅析MySQL的事务隔离级别

    原文链接:这一次,带你搞清楚MySQL的事务隔离级别! 使用过关系型数据库的,应该都事务的概念有所了解,知道事务有 ACID 四个基本属性:原子性(Atomicity).一致性(Consistency ...

  6. MySQL丨03丨基本语句

    MySQL语句都是以 ; 号结尾的 看库(刘大婶直接面对的是各种档案袋) show databases; 建库(新弄了一个档案袋) create database database_name; 删库( ...

  7. MySQL笔记03(黑马)

    今日内容 DQL:查询语句 排序查询 聚合函数 分组查询 分页查询 约束 多表之间的关系 范式 数据库的备份和还原 DQL:查询语句 排序查询 语法:order by 子句 order by 排序字段 ...

  8. MySQL学习03(MySQL数据管理)

    MySQL数据管理 外键 外键概念 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关键字的表被称为主 ...

  9. Angular4+NodeJs+MySQL 入门-03 后台接口定义

    这篇里是如何定义接口,我们一般访问接口如:post请求调用http://127.0.0.1:11000/webapi/userinfo/user 这个接口,成功返回用户信息,如果失败要返回失败原因等. ...

随机推荐

  1. ADC(简易的DMA传输)的认识

    ADC(简易的DMA传输)的认识 首先看到是ADC的特性 1.ADC的12位分辨率.不能直接测量负电压,然后是最小量程化单位是LSB=Vref+/212 2.单次和转换模式的使用 3. 从通道0到通道 ...

  2. Windows程序设计(七)--鼠标

    7.2 客户区鼠标消息 当鼠标移过窗口的显示区域时,窗口消息处理程序收到WM_MOUSEMOVE消息.当在窗口的显示区域中按下或者释放一个鼠标按键时,窗口消息处理程序会接收到下面这些消息: 键 按下 ...

  3. Python之文件路径名的操作

    使用 os.path 模块中的函数来操作路径名 import os # 获取当前文件路径 path=os.path.abspath(__file__) # 获取绝对路径 /home/zzy/Pycha ...

  4. vue.js(7)--vue中的样式绑定

    vue中class样式与内联样式的绑定 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  5. elasticsearch 深入 —— 近似匹配

    近似匹配 使用 TF/IDF 的标准全文检索将文档或者文档中的字段作一大袋的词语处理. match 查询可以告知我们这大袋子中是否包含查询的词条,但却无法告知词语之间的关系. 思考下面这几个句子的不同 ...

  6. 源码分析--HashSet(JDK1.8)

    HashSet为无序不可重复集合.底层几乎全部借助HashMap实现,比较简单.本篇简要分析一下HashSet源码. 首先是成员变量: 1.真正保存数据的HashMap实例 private trans ...

  7. php中的花括号使用详解

    1.简单句法规则(用花括号界定变量名,适用于PHP所有版本,是php系统设定):    $a = 'flower';    echo "She received some $as" ...

  8. Linux系统常用知识(centos7)

    一.查看系统版本 1.查看linux内核版本 #cat /etc/redhat-release 二.主机名 2.1定义: 静态的(Static hostname):“静态”主机名也称为内核主机名,是系 ...

  9. hibernate Criteria(条件查询接口)

    Criteria(条件查询接口) // 1.简单查询 List<Customer> list = session.createCriteria(Customer.class).list() ...

  10. Oracle 设置自启动

    1. 环境准备 1.1 系统 操作系统:CentOS 7(64位) 1.2 工具/软件 已安装完成的Oracle11g(64位):  创建数据库实例,本文中数据库实例名:test:$ORACLE_SI ...