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. Linux之systemd服务配置及自动重启

    layout: post title: Linux之systemd服务配置及自动重启 date: 2019-09-09 tags: linux --- Linux之systemd服务配置及自动重启 0 ...

  2. NGUI的widget的使用

    一,我们看看widget有什么属性,如下图: 二,Pivot是什么意思? 我们都知道在Untiy3D中有一个中央坐标点,而这个Pivot这个就是选择控件的某一个点与中央坐标点定位. 如下图区别: 当你 ...

  3. nginx的4层负载均衡配置

    前言:所谓四层就是基于IP+端口的负载均衡:七层就是基于URL等应用层信息的负载均衡:同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡. 换句换说,二层负载均衡会通过一个虚拟MAC地 ...

  4. 获取input输入值

  5. ERROR in Template execution failed: ReferenceError: htmlwebpackPlugin is not defined

    ejs文件配置如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <title>webpa ...

  6. quotastats - 显示与配额子系统相关的统计信息

    SYNOPSIS(总览) quotastats DESCRIPTION(描述) 该命令显示与配额子系统相关的统计信息.

  7. geometry_msgs的ros message 类型赋值

    test_custom_particles.cpp // // Created by gary on 2019/8/27. // #include <ros/ros.h> #include ...

  8. Sass--传一个不带值的参数

    Sass 的混合宏有一个强大的功能,可以传参,那么在 Sass 中传参主要有以下几种情形: A) 传一个不带值的参数 在混合宏中,可以传一个不带任何值的参数,比如: @mixin border-rad ...

  9. 【leetcode】472. Concatenated Words

    题目如下: Given a list of words (without duplicates), please write a program that returns all concatenat ...

  10. SQLServer 链接服务器及同义词

    链接服务器 1. openrowse exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc ...