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. javascript对象的深度克隆

    在做项目的时候需要向对象里面添加新属性,又不想修改原对象.于是就写: var newObj = oldObj,但是新对象属性改变后就对象也会跟着改变,这是因为无论是新对象还是旧对象,指向的内存地址都是 ...

  2. P3809 【模版】后缀排序

    题目背景 这是一道模版题. 题目描述 读入一个长度为 nn 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置.位置编 ...

  3. Scrapy中scrapy.Request和response.follow的区别

    在写scrapy的spider类的parse方法的时候,有些链接需要提取出来继续爬取,这里scrapy提供了一些方法可以方便的实现这个功能,总结如下: 假设我们的目标a标签是target_a 方法1: ...

  4. BootStrap学习(二)——重写首页之topbar

    1.布局容器 帮助文档:http://v3.bootcss.com/css/#overview-container BootStrap需要为页面内容和栅栏系统包裹一个.container容器.提供的两 ...

  5. js&jQ判断checkbox表单是否被选中

    js判断: if(document.getElementById("checkboxID").checked){ alert("checkbox is checked&q ...

  6. 关联对象 AssociatedObject 完全解析

    我们在 iOS 开发中经常需要使用分类(Category),为已经存在的类添加属性的需求,但是使用 @property 并不能在分类中正确创建实例变量和存取方法. 不过,通过 Objective-C ...

  7. ztree连接数据库,实现下拉菜单

    $(document).ready(function(){ var treeObj = $("#treeDemo"); $.fn.zTree.init(treeObj, setti ...

  8. 使用Python进行多线程检查.moe三位剩余有效域名

    翻看博客看到一段不错的代码 虽然近期没有购买域名的需求 不过日后有购买域名的需求的话 稍作修改直接使用还是很方便的 import threading import requests import js ...

  9. 解决new Date的值为Invalid Date、NaN-NaN的问题

    错误代码: let timespan = 1515239514230; let dateTime = new Date(timespan); console.log(dateTime) // 返回 I ...

  10. 紫书 例题 11-6 UVa 658 (状态压缩+隐式图搜索+最短路)

    这道题用到了很多知识点, 是一道好题目.      第一用了状态压缩, 因为这里最多只有20位, 所以可以用二进制来储存状态 (要对数据范围敏感), 然后 涉及到了一些位运算.     第二这里是隐式 ...