- 浏览: 209784 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (267)
- java.lang (8)
- 问题汇总 (21)
- 异常记录 (20)
- 功能实现 (19)
- 面试总结 (25)
- 技巧总结 (8)
- 常用代码 (4)
- 编程习惯 (3)
- 编码规则 (3)
- java.util (10)
- java.io (1)
- JavaWeb (9)
- MySQL (16)
- SVN (3)
- MyBatis (11)
- Velocity (7)
- 其他知识 (10)
- 人生哲理 (1)
- 人生故事 (1)
- 自我感悟 (1)
- shiro (3)
- 基础知识 (0)
- 问题总结 (1)
- Spring 标签 (1)
- Spring (3)
- 点滴生活 (1)
- DOS (1)
- CAS (4)
- Linux (9)
- Storm (6)
- Shell (1)
- regex (1)
- Collection (4)
- poi (1)
- 经典语句 (1)
- NIO (5)
- concurrent (14)
- RPC (1)
- zookeeper (3)
- 待整理 (2)
- Hadoop (9)
- RabbitMq (2)
- flume (1)
- hive (7)
- hbase (4)
- kafka (1)
- scala (1)
- GC (0)
- java.util.concurrent.atomic (1)
- java.lang.ref (6)
- JVM (2)
- algorithm (1)
- conception (1)
- java key word (1)
- sun.misc (1)
最新评论
存储引擎
一、总结
名称 | MyISAM | InnoDB |
事务 | 不支持 | 支持 |
外键 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
数据表锁定 | 支持 | 支持 |
全文索引 | 支持 | 不支持 |
优势 | 查询操作多 | 修改操作多 |
对比 | 性能高执行速度快 | 支持事务外键 |
count(*) | 读取内存中的行数 | 全表扫描 |
count(*) where | 无差别 | 无差别 |
应用 | (1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务 | (1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,并且行锁定的机会比较大的情况 |
二、其他
1.没有where的count(*)使用MyISAM要比InnoDB快得多。因为MyISAM内置了一个计数器,count(*)时它直接从计数器中读,而InnoDB必须扫描全表。所以在InnoDB上执行count(*)时一般要伴随where,且where中要包含主键以外的索引列。为什么这里特别强调“主键以外”?因为InnoDB中primary index是和raw data存放在一起的,而secondary index则是单独存放,然后有个指针指向primary key。所以只是count(*)的话使用secondary index扫描更快,而primary key则主要在扫描索引同时要返回raw data时的作用较大
2.提供行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECTs),另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”
博文参考:
MyISAM和InnoDB的区别
发表评论
-
索引相关(二)
2017-11-05 21:13 497索引相关 一、InnoDB 与 MyISAM 对比 存储引 ... -
SQL优化示例
2017-11-03 15:34 479一、distinct 、 union all 、 union ... -
索引相关
2017-11-02 20:42 514一、索引分类 1.单列索引:一个索引包含一列,一个表可以包含 ... -
检索指定时间范围内的数据与预期不一致
2017-10-30 20:38 566问题背景: 在不同日期内进行不同的业务逻辑,在测试环境进行模拟 ... -
常用索引优化
2017-10-29 16:07 385唯一索引 联合索引 索引方式:BTREE 1.order b ... -
统计每天的数据
2017-10-10 21:23 543需求:按天统计数据 分析:create_time 为 dat ... -
DDL - CREATE
2017-08-05 06:10 483一、基本语句 CREATE TABLE `data_te ... -
数据统计
2016-06-12 17:04 556按照时间统计各个阶段的数据数量 1.统计每个月卖家的注册数量 ... -
1030 Got error 28 from storage engine
2016-05-24 22:25 1318现象:调试程序过程中,突然报错,显示数据检索失败,数据库连接超 ... -
批量数据修改
2015-08-19 15:39 439问题:增加新功能,需要初始化数据,执行update、inser ... -
mysql 如何查询出某字段的值不为空的数据
2015-06-30 19:05 2904问题:查询原有某类数据的数量,对比发现,新旧数据的差距是新插入 ... -
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException
2015-05-21 15:38 840异常: com.mysql.jdbc.exceptions.j ... -
You can't specify target table <tbl> for update in FROM clause
2015-04-23 10:50 730[size=large][/size] mysql中You ... -
MySQL-删除除id外其他内容都相同的数据
2015-04-23 09:24 1096删除除id外其他内容都相同的数据 难点:自己不能删除自己,要 ... -
MySQL常用操作总结
2015-04-23 08:32 540常用数据表操作: 虽然有DBA的存在,但PD(program ...
相关推荐
MySQL 数据存储引擎 InnoDB 和 MyISAM 的优势及区别分享 MySQL 数据存储引擎 InnoDB 和 MyISAM 是 MySQL 中最常用的两个表类型,每种类型都有其优缺点,本文将详细介绍 InnoDB 和 MyISAM 的特点、优缺点和应用场景...
MySQL数据库系统提供了多种存储引擎,其中最常用的两种是MyISAM和InnoDB。它们各自具有独特的特性和适用场景,理解二者的性能差异对于优化数据库设计至关重要。 MyISAM引擎是MySQL早期的默认存储引擎,以其高速度和...
MySQL存储引擎--MyISAM与InnoDB区别 MySQL是一种关系型数据库管理系统,它支持多种存储引擎,每种存储引擎都有其特点和优缺。MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们都有其优缺点,本文将对比MyISAM...
综合来看,尽管InnoDB在事务和并发控制方面表现更优,已成为MySQL的默认存储引擎,但MyISAM在读密集型应用和空间敏感应用中仍有一定的优势。在选择存储引擎时,应根据实际应用的需求,如事务处理的重要性、并发用户...
本文主要讨论了两种最常用的存储引擎——InnoDB和MyISAM,并分析了它们的优缺点。 首先,MyISAM是MySQL的默认存储引擎,适用于读取密集型应用。它提供了快速的全表扫描和COUNT()操作,适合那些不需要事务处理和外键...
其中,InnoDB和MyISAM是最为常见的两种存储引擎,它们各自具备独特的特性和适用场景。下面将详细探讨这两种引擎的主要区别及其在不同场景下的应用。 #### 一、InnoDB与MyISAM的关键区别 1. **事务处理** - **...
Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下: xtrabackup备份原理 xtraBackup基于InnoDB的crash-recovery功能。它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的...
MySQL存储引擎InnoDB和MyISAM是两种非常常见的存储引擎,它们各有特点,适用于不同的应用场景。下面是关于这两种存储引擎的六大区别: 1. **构成上的区别**: MyISAM的每个表由三个文件组成:`.frm`文件存储表结构...
MySQL中的InnoDB和MyISAM是两种非常重要的存储引擎,它们各自有着独特的特性和适用场景。InnoDB以其对事务处理和行级锁定的支持而受到重视,而MyISAM则以其高性能和简单性受到青睐。 InnoDB存储引擎的核心优势在于...
本文将详细介绍如何在MySQL中启用InnoDB存储引擎,并对比分析InnoDB与其他存储引擎(如MyISAM)之间的主要差异。 #### 二、InnoDB简介 InnoDB是MySQL数据库的一种默认存储引擎,自MySQL 5.5版本开始,默认启用...
自己总结的 关于mysql存储引擎myisam innodb 的比较 两者区别 对面试会很有帮助
除了InnoDB和MyISAM之外,MySQL还支持多种其他的存储引擎,如Memory、Archive、Federated等,这些引擎各有特色,可以满足不同的业务需求。 #### 四、存储引擎选择 选择合适的存储引擎对于保证数据库性能和稳定性至...
MyISAM和InnoDB是MySQL中最常用的两种存储引擎,它们各自拥有不同的特点和适用场景。 #### MyISAM引擎概述 MyISAM是MySQL早期默认使用的存储引擎,它主要适用于读取密集型的应用场景。MyISAM支持表级锁定,这意味...
MySQL存储引擎MyISAM与InnoDB的区别 一、InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。 二、MyISAM适合查询...
2、MyISAM与InnoDB存储引擎的主要特点 MyISAM存储引擎的特点是:表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发、重负荷生产系统上,表锁结构的特性就显得力不从心; ...
3. **外键约束**:InnoDB支持外键,这是其他一些存储引擎如MyISAM所不具备的。外键可以确保数据的参照完整性和数据库间的关系。 4. **MVCC(多版本并发控制)**:InnoDB使用MVCC来实现高并发读写,尤其是在可重复读...
在 MySQL 数据库系统中,存在多种不同的存储引擎,其中最为人所熟知且广泛使用的两种是 MyISAM 和 InnoDB。这两种存储引擎各自具有独特的特点和适用场景。 #### InnoDB:事务安全与外键支持 InnoDB 是 MySQL 中...
MySQL 5.7支持的存储引擎有:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV和BLACKHOLE等。 可以利用语句:show engines; 查看系统所支持的引擎类型。;1.InnoDB存储引擎 InnoDB是事务型数据库的首选引擎...