mysql存储引擎之myisam学习
myisam存储引擎特点:
1.不支持事务
2.表级锁定(更新时锁整个表,其索引机制是表级索引,这虽然可以让锁定的实现成本很小,但是也同时大大降低 了其并发性能)
3.读写互相阻塞:不仅会在写入的时候阻塞读取,myisam还会在读取的时候阻塞写入,但读本身并不会阻塞另外的读。
4.只会缓存索引:myisam可以通过key_buffer_size缓存索引,以大大提高访问性能减少磁盘IO,但是这个缓存区只会缓存索引,而不会缓存数据。
5.读取速度较快,占用资源相对少
6.不支持外键约束,但支持全文索引
myisam引擎适用的生产业务场景
1.不需要事务支持的业务(列如转账就不行,充值付款)
2.一般为读数据比较多的应用,读写都频繁场景不适合,读多或者写多的都适合
3.读写并发访问相对较低的业务( 纯读纯写高并发也可以)
4.数据修改相对较少的业务(阻塞问题)
5.以读为主的业务
6.对数据一致性要求不是非常高的业务(不支持事务)
7.中小型的网站部分业务会用
myisam引擎调优精要
设置合适的索引(缓存机制)
调整读写优先级,根据实际需求确保重要操作更优先执行
启用延迟插入改善大批量写入性能(降低写入频率,尽可能多条数据一次性写入)
尽量顺序操作让insert数据都写入到尾部,减少阻塞
分解大的时间长的操作,降低单个操作的阻塞时间
降低并发数(减少对mysql访问),某些高并发场景通过应用进行排队队列机制
对于相对静态(更改不频繁)的数据库数据,充分利用Query Cache或memcached缓存服务可以极大的提高效率
query_cache_size=2m
query_cache_limit=1m
query_cache_min_res_unit=2kmyisam的count只有在全表扫描的时候特别高效,带有其他条件的count都需要进行实际的数据访问。
可以把主从同步的主库使用innodb,从库使用myisam引擎(不推荐)。
mysql存储引擎之myisam学习的更多相关文章
- MySQL存储引擎之Myisam和Innodb总结性梳理
Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...
- 浅谈MySQL存储引擎-InnoDB&MyISAM
存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式是不同的.每一种存储引擎都有它的优势和劣势,本文只讨论最常见 ...
- mysql存储引擎之MyISAM 和 InnoDB的比较
一.什么是存储引擎 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和 ...
- mysql存储引擎的一点学习心得总结
首先我们应该了解mysql中的一个重要特性--插件式存储引擎,从名字就能够看出在mysql中,用户能够依据自己的需求随意的选择存储引擎.实际上也是这样.即使在同一个数据库中.不同的表也能够使用不同的存 ...
- MySQL存储引擎之Myisam和Innodb总结性梳理-转
原文链接:https://www.cnblogs.com/kevingrace/p/5685355.html 谢谢楼主 Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 ...
- MySQL存储引擎:MyISAM和InnoDB的区别
MyISAM和InnoDB的区别 定义 InnoDB:MySQL默认的事务型引擎,也是最重要和使用最广泛的存储引擎.它被设计成为大量的短期事务,短期事务大部分情况下是正常提交的,很少被回滚.InnoD ...
- MySQL存储引擎 InnoDB/ MyISAM/ MERGE/ BDB 的区别
MyISAM:默认的MySQL插件式存储引擎,它是在Web.数据仓储和其他应用环境下最常使用的存储引擎之一.注意,通过更改 STORAGE_ENGINE 配置变量,能够方便地更改MySQL服务器的默认 ...
- MySQL存储引擎简介-MyISAM和InnoDB的区别
上篇文章<MySql逻辑结构简介>我们聊到了存储引擎,可以说MySQL可插拔的多元化存储引擎给我们的使用者带来了很灵活的选择. 这篇文章我们来聊一下目前主流的两种存储引擎MyISAM和In ...
- mysql存储引擎之innodb学习
innodb引擎特点1.支持事务:支持4个事务隔离级别,支持多版本读. 2.行级锁定(更新时一般是锁定当前行):通过索引实现,全表扫描仍然会是表锁,注意间隙 锁的影响 3.读写阻塞与事务隔离级别有关 ...
随机推荐
- cacti安装和使用
关闭selinux 1.搭建lamp环境 配置apache [root@cacti-server ~]# yum -y install httpd [root@cacti-server ~]# sys ...
- [转载]Java操作Excel文件的两种方案
微软在桌面系统上的成功,令我们不得不大量使用它的办公产品,如:Word,Excel.时至今日,它的源代码仍然不公开已封锁了我们的进一步应用和开发.在我们实际开发企业办公系统的过程中,常常有客户这样子要 ...
- 017——数组(十七) asort ksort rsort arsort krsort
<?php /** * 数组 asort ksort rsort arsort krsort */ //asort()对数组按值排序,保留键名: /*$arr=array( 'bbs_url'= ...
- [sqlite] 判断表、视图是否存在及常用C#操作语句
1,判断表是否存在: SELECT name, sql FROM sqlite_master WHERE type="table" AND name = "Dom&quo ...
- tsl/ssl 证书制作记录
生成自签名证书 生成服务端秘钥 $ openssl genrsa -out server.key 1024 生成证书请求文件 编写配置文件openssl.cnf $ vi openssl.cnf [r ...
- RabbitMQ(1) 核心概念
消息中间价 消息中间价,也称消息队列,是分布式式系统中常用的中间价. 通过消息中间价传递消息,使得各个子系统解耦,异步通信. 目前业界有许多消息队列的实现,如RabbitMQ.Kafka.Active ...
- LeetCode OJ:Search in Rotated Sorted Array(翻转排序数组的查找)
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...
- C++/C extern关键字详解 EntryPointNotFoundException处理
最近在弄C#帮公司做一个图像识别的功能,用到了第三方的dll,在调用dll过程中就出现了一个问题.EntryPointNotFoundException异常.遇到这种异常,很大可能就是在生成dll时函 ...
- New Concept English three (23)
31w 45 People become quite illogical when they try to decide what can be eaten and what cannot be ea ...
- 理解 uncaughtException 和 domain 和 try catch 区别
文章 实践 uncaughtException 捕获的是全局的异常, 反应慢, 每个回调完成后才发出异常, 书写也麻烦 domain 可以捕获每个异常, 及时反馈, 并且书写简洁 但他们两个捕获的异常 ...