mysql存储引擎之myisam学习

myisam存储引擎特点:
1.不支持事务
2.表级锁定(更新时锁整个表,其索引机制是表级索引,这虽然可以让锁定的实现成本很小,但是也同时大大降低 了其并发性能)

3.读写互相阻塞:不仅会在写入的时候阻塞读取,myisam还会在读取的时候阻塞写入,但读本身并不会阻塞另外的读。
4.只会缓存索引:myisam可以通过key_buffer_size缓存索引,以大大提高访问性能减少磁盘IO,但是这个缓存区只会缓存索引,而不会缓存数据。

5.读取速度较快,占用资源相对少

6.不支持外键约束,但支持全文索引

myisam引擎适用的生产业务场景
1.不需要事务支持的业务(列如转账就不行,充值付款)

2.一般为读数据比较多的应用,读写都频繁场景不适合,读多或者写多的都适合
3.读写并发访问相对较低的业务( 纯读纯写高并发也可以)

4.数据修改相对较少的业务(阻塞问题)

5.以读为主的业务

6.对数据一致性要求不是非常高的业务(不支持事务)
7.中小型的网站部分业务会用

myisam引擎调优精要

  1. 设置合适的索引(缓存机制)
  2. 调整读写优先级,根据实际需求确保重要操作更优先执行
  3. 启用延迟插入改善大批量写入性能(降低写入频率,尽可能多条数据一次性写入)
  4. 尽量顺序操作让insert数据都写入到尾部,减少阻塞
  5. 分解大的时间长的操作,降低单个操作的阻塞时间
  6. 降低并发数(减少对mysql访问),某些高并发场景通过应用进行排队队列机制
  7. 对于相对静态(更改不频繁)的数据库数据,充分利用Query Cache或memcached缓存服务可以极大的提高效率
    query_cache_size=2m
    query_cache_limit=1m
    query_cache_min_res_unit=2k
  8. myisam的count只有在全表扫描的时候特别高效,带有其他条件的count都需要进行实际的数据访问。
  9. 可以把主从同步的主库使用innodb,从库使用myisam引擎(不推荐)。
时间: 2024-10-29 21:40:26

mysql存储引擎之myisam学习的相关文章

mysql存储引擎的一点学习心得总结

首先我们应该了解mysql中的一个重要特性--插件式存储引擎,从名字就可以看出在mysql中,用户可以根据自己的需求任意的选择存储引擎,实际上也是这样,即使在同一个数据库中,不同的表也可以使用不同的存储引擎.Mysql中支持的存储引擎有很多种,这个可以去baidu或者google,本文主要说两种比较常用的存储引擎,myisam和innodb. myisam的特点是 1)索引和数据分开存储,myisam有三个文件(.frm文件,存储表定义:.MYI存储索引 my index:  MYD存储数据 m

MySQL存储引擎之MyIsam和Innodb总结性梳理

区别  MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩 展名为.MYD (MYData).索引文件的扩 展名是.MYI (MYIndex). 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的 大小只受限于操作系统文件的大小,一般为 2GB 事务处理上方面: MyISAM类型的表强调的是性能,其执行数 度比InnoDB类型更快,但是不提供事务支

浅谈MySQL存储引擎-InnoDB&MyISAM

存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式是不同的.每一种存储引擎都有它的优势和劣势,本文只讨论最常见的InnoDB和MyISAM两种存储引擎进行讨论.本文中关于数据存储形式和索引的可以查看图解MySQL索引 MySQL逻辑架构图: InnoDB存储引擎 InnoDB是默认的事务型存储引擎,也是最重要,使用最广泛的存储引擎.在没有特殊情况下,一般优先使用InnoDB存储引擎. 1??.数据存储形式

MySQL存储引擎 InnoDB/ MyISAM/ MERGE/ BDB 的区别

MyISAM:默认的MySQL插件式存储引擎,它是在Web.数据仓储和其他应用环境下最常使用的存储引擎之一.注意,通过更改 STORAGE_ENGINE 配置变量,能够方便地更改MySQL服务器的默认存储引擎. InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持. BDB:可替代InnoDB的事务引擎,支持COMMIT.ROLLBACK和其他事务特性. Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问. Merge:允许MyS

【深入浅出Mysql】MySql存储引擎之MyISAM(二)

一.MyISAM 1.1 数据存储 MyISAM是默认的MySQL插件式存储引擎.它不支持事务和外键.优势:访问速度快,基本上以SELECT.INSERT为主的应用基本上都可以使用这个引擎来创建表.每个MyISAM在磁盘上存储称3个文件,其文件名和表名相同,扩展名不同,分别是: .frm(存储表自定义) .MYD(MYDATA,存储数据) .MYI(MYIndex,存储索引) MyISAM的数据文件和索引文件可以放置在不同的目录,平均分布IO,获得更快的速度.其中索引文件需要在创建表的时候通过D

MySQl学习-——Mysql体系结构与Mysql存储引擎

Mysql体系结构与Mysql存储引擎 Mysql体系结构 mysql体系结构图: 1)        Connectors:指的是不同语言中与SQL的交互 max_connections 就是整个MySQL实例的最大连接数限制 max_user_connections 是单个用户的最大连接数,这里未指明是哪个用户,是任意一个用户. 2)        Management Serveices & Utilities:系统管理和控制工具 备份和恢复的安全性,复制,集群,管理,配置,迁移和元数据

重新学习MySQL数据库3:Mysql存储引擎与数据存储原理

重新学习Mysql数据库3:Mysql存储引擎与数据存储原理 数据库的定义 很多开发者在最开始时其实都对数据库有一个比较模糊的认识,觉得数据库就是一堆数据的集合,但是实际却比这复杂的多,数据库领域中有两个词非常容易混淆,也就是数据库和实例: 数据库:物理操作文件系统或其他形式文件类型的集合: 实例:MySQL 数据库由后台线程以及一个共享内存区组成: 对于数据库和实例的定义都来自于 MySQL 技术内幕:InnoDB 存储引擎 一书,想要了解 InnoDB 存储引擎的读者可以阅读这本书籍. 数据

MySQL存储引擎MyISAM与InnoDB的优劣

使用MySQL当然会接触到MySQL的存储引擎,在新建数据库和新建数据表的时候都会看到. MySQL默认的存储引擎是MyISAM,其他常用的就是InnoDB了. 至于到底用哪种存储引擎比较好?这个问题是没有定论的,需要根据你的需求和环境来衡量.所以对这两种引擎的概念.原理.异同和各自的优劣点有了详细的了解之后,再根据自己的情况选择起来就容易多了. MyISAM InnoDB 存储结构 每张表被存放在三个文件: frm-表格定义 MYD(MYData)-数据文件 MYI(MYIndex)-索引文件

mysql 存储引擎 myisam innodb 区别

虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是它俩了.可能有站长并未注意过MySQL的存储引擎,其实存储引擎也是数据库设计里的一大重要点,那么博客系统应该使用哪种存储引擎呢?下面我们分别来看两种存储引擎的区别. MySQL存储引擎MyISAM与InnoDB的区别 一.InnoDB支持事务,MyISAM不支持,这一点是非常之重要.事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了. 二.MyISAM适合查询以及插入为主的