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. linux文件上传下载

    上传本地文件到服务器:scp 文件名 账号@服务器IP:文件路径eg:scp test.txt root@192.168.0.123:/tmp/服务器文件下载到本地:scp 账号@服务器IP:文件 本 ...

  2. Codeforces 701E Connecting Universities 贪心

    链接 Codeforces 701E Connecting Universities 题意 n个点的树,给你2*K个点,分成K对,使得两两之间的距离和最大 思路 贪心,思路挺巧妙的.首先dfs一遍记录 ...

  3. JQuery中的find、filter和each方法学习

    find() 概述 搜索所有与指定表达式匹配的元素.这个函数是找出正在处理的元素的后代元素的好方法. 所有搜索都依靠jQuery表达式来完成.这个表达式可以使用CSS1-3的选择器语法来写. 参数 e ...

  4. Codeforces 930A. Peculiar apple-tree (dfs)

    题目: 代码: #include <bits\stdc++.h> using namespace std; ]; //b[i]表示距离1号花絮i步的花絮的个数 map <int, l ...

  5. Enable .Net 4.5 in IIS on Windows 8.1

    Setting up a new development box for myself I had forgotten all about the necessity to use theaspnet ...

  6. 计算 List 数据的属性值的总和

    List<PostRushPretreatmentMember> taskMember = pre.getTaskMember();///成员分配情况 Integer taskOrderN ...

  7. CF666E Forensic Examination(后缀自动机+线段树合并)

    给你一个串S以及一个字符串数组T[1..m],q次询问,每次问S的子串S[pl..pr]在T[l..r]中的哪个串里的出现次数最多,并输出出现次数. 如有多解输出最靠前的那一个. 我们首先对m个字符串 ...

  8. CF1000G Two-Paths (树形DP)

    题目大意:给你一棵树,点有点权$a_{i}$,边有边权$w_{e}$,定义一种路径称为$2-path$,每条边最多经过2次且该路径的权值为$\sum _{x} a_{x}\;-\;\sum_{e}w_ ...

  9. spring中IOC的简单使用

    spring的ioc主要就是依赖注入,有基于构造器的依赖注入还有通过设值注入,这里我只简单的实现设值注入的方法,通过spring的依赖管理,我们可以很方便的了解各层之间的依赖关系,降低了各层之间的耦合 ...

  10. 紫书 习题 11-8 UVa 1663 (最大流求二分图最大基数匹配)

    很奇怪, 看到网上用的都是匈牙利算法求最大基数匹配 紫书上压根没讲这个算法, 而是用最大流求的. 难道是因为第一个人用匈牙利算法然后其他所有的博客都是看这个博客的吗? 很有可能-- 回归正题. 题目中 ...