1、Myisam 支持锁表,innoDB 支持行锁。
2、innoDB 和 BDB 支持事务。
3、Myisam 与 innoDB 索引的区别:
     Myisam 无论是主键索引还是其他索引,索引存储的是数据的物理行地址。比如 id为主键索引,索引文件中每个 id 对应的是数据的物理行地址。查询时先根据条件从索引树找到对应的 id ,然后根据 id 存储的物理行地址查询数据。
    
     innoDB 的主键索引存储的是每条数据(即 id 直接对应数据)。其他索引例如:给 name 字段添加索引,索引树所对应的是每条数据的 id 。再根据 id 去拿对应的整条数据。     
     innoDB 主键索引也称之为聚簇索引(既有主键值,又有行数据 ),因为索引的值和 id 值都聚集在一起。。优点是 根据主键查询直接就可以拿到数据。缺点是 根据其他索引字段查询,要多拐一个弯儿(根据其他索引存储的 id 再去从主键索引拿数据),查询效率慢。而 Myisam 直接存储的是物理行地址,所以索引效率理论一样。 
     innoDB 如果没有主键,会把 unique key 做主键,也会有聚簇索引效果。如果 unique key 都没有,则系统内部会生成 rowid 做主键。 innoDB 在选择主键时类型最好是整型的而且是有序的,因为如果是无序的,如果产生分裂(分裂是比如已经有 id 1、5 ,这时来了个 3 就会把 5 向后推,产生分裂),将会大大降低了插入速度。
 
     假如有一个表的数据量非常大(id、ver、str(3000)),那么引擎将直接影响查询速度。因为第三个字段数据太长,innoDB 的主键索引存储的是整条数据,而这条数据是很长的,所以他会分割成很多块儿存储,会导致索引文件过大,查询时光读取索引文件就很消耗时间(解决方法:给查询字段添加组合索引 ,id和
ver 设为组合索引,将会大大加快查询速度。因为 innoDB 引擎 组合索引直接存储的是数据 id ,减小了索引文件所占空间,查询速度相对就快了。如果没有第三个数据那么大的字段, 依靠 innoDB 的主键索引读取是差不多的)。而
Myisam 的任何索引都存储的是数据的物理行,索引文件相对就小,读取文件速度当然比较快速。
     总结一点:索引文件大小直接影响读取速度。
 
4、mysql中有一种机制是表锁定和行锁定,为什么要出现这种机制,是为了保证数据的完整性。
     我举个例子来说吧,如果有二个sql都要修改同一张表的同一条数据,这个时候怎么办呢?
     是不是二个sql都可以同时修改这条数据呢?很显然mysql对这种情况的处理是:
    一种是表锁定(myisam存储引擎),
     一个是行锁定(innodb存储引擎)。
     表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。
     行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操作。
     如果数据太多,一次执行的时间太长,等待的时间就越长,这也是我们为什么要分表的原因。

myisam和innodb的qubie的更多相关文章

  1. MyISAM和InnoDB

    MyISAM和InnoDB MyISAM MyISAM使用B+tree作为索引结构,叶节点存放的是数据地址. MyISAM不支持事务和外键. MyISAM是表锁,对数据库写操作时会锁住整个表,效率低. ...

  2. 白话讲MyIsam和InnoDB的区别

    "MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持"这是网上对MyISAM和InnoDB的解释,很抽象吧,我们用白话的方式解释一下其实也比较简单所谓事务处理,就是原 ...

  3. MySQL存储引擎之Myisam和Innodb总结性梳理

    Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...

  4. msql数据迁移,myisam及innoDB

    直接迁移数据库文件. 一.MySQL数据库文件介绍 MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQL所建数据库文件和MySQL所用存储引擎创建的数据库文 ...

  5. myisam、innodb存储引擎比较

    MYSQL表类型(存储引擎) 1.概述 MySQL数据库其中一个特性是它的存储引擎是插件式的.用户可以根据应用需要选择存储引擎.Mysql默认支持多种存储引擎,以适用各种不同的应用需要.默认情况下,创 ...

  6. MySQL中MyISAM和InnoDB的区别

    MyISAM和InnoDB的区别 MySQL默认采用的是MyISAM. MyISAM不支持事务,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事 ...

  7. 常用mysql数据库引擎——MyISAM和InnoDB区别

    背景: 昨天做项目时,发现使用事务后回滚不了,后来把数据库引擎从MyISAM换成InnoDB后果断好了,如下图: 正文: MyISAM和InnoDB是mysql常用的数据库引擎,他们的区别如下: 数据 ...

  8. MySQL两种表存储结构MyISAM和InnoDB的性能比较测试

    转载 http://www.jb51.net/article/5620.htm MySQL支持的两种主要表存储格式MyISAM,InnoDB,上个月做个项目时,先使用了InnoDB,结果速度特别慢,1 ...

  9. MyISAM 和InnoDB 区别 转

    MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理 ...

随机推荐

  1. 时间处理工具类TimeUtil

    转自:https://cnblogs.com/ityouknow/p/5662753.html 功能 Date与String之间的互相转换,以及一些特殊格式的时间字符串处理 代码 /** * 类名:T ...

  2. 分组后取每组内排名的Top N的SQL语句

    给个MySQL例子参考 -----查询每门课程的前2名成绩 CREATE   TABLE   StudentGrade( stuId   CHAR(4),         --学号 subId   I ...

  3. 你不知道的JavaScript(七)delete操作符

    JS中的delete操作符不是太常用,容易被忽略,它的作用很简单,用来删除对象的属性或方法. <script type="text/javascript"> var p ...

  4. 如何给table的指定td进行css样式改变

    td:nth-child(){background-color:#; color:#fff;}/*把第3个td的背景设为黑色*/ :nth-child()不止可以给table指定样式 p标签页是可以的 ...

  5. 一个php处理图片裁剪,压缩,水印的小代码

    插件地址:https://github.com/cigua/imagefilter

  6. 重设数据文件大小sql语句

    set verify off column file_name format a50 word_wrapped column smallest format 999,990 heading " ...

  7. 查看锁表进程SQL语句

    查看锁表进程SQL语句   set pagesize 999 set line180 col ORACLE_USERNAME for a18 col OS_USER_NAME for a18 col ...

  8. (转)Hadoop Eclipse开发环境搭建

    来源:http://www.cnblogs.com/justinzhang/p/4261851.html This document is from my evernote, when I was s ...

  9. luoguP1555 尴尬的数字(暴力+map)

    题意 题解 枚举每一个可能的二进制数.扔到一个map里 再枚举每一个可能的三进制数看map有没有就行了 反正就是很水 #include<iostream> #include<cstr ...

  10. centos7 bond0 双网卡配置

    [root@openldap ~]# ifconfig bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500 ...