戴尔笔记本怎么戴尔电脑win8改win77

详解Mysql中InnoDB和MyISAM两种表类型的区别1
详解Mysql中InnoDB和MyISAM两种表类型的区别1
发布时间: 19:33:13
编辑:www.fx114.net
本篇文章主要介绍了"详解Mysql中InnoDB和MyISAM两种表类型的区别1",主要涉及到详解Mysql中InnoDB和MyISAM两种表类型的区别1方面的内容,对于详解Mysql中InnoDB和MyISAM两种表类型的区别1感兴趣的同学可以参考一下。
众所周知,InnoDB和MyISAM是mysql中最常用的两种表的类型,MyISAM是默认的类型。它们的区别很多,主要是侧重点不同,InnoDB支持一些高级处理,而MyISAM强调性能,当然强调性能的同时就要牺牲一些东西了。
& 现在对比一下统计行数的语句(select count(*)|(1)|(Primary Key)),在Mysql中新建两个表,分别是MyISAM和InnoDB类型的:
CREATE&TABLE&&`Table1`&(
&&`id`&int(11)&NOT&NULL,
&&`name`&char(50)&character&set&ucs2&default&NULL,
&&PRIMARY&KEY&&(`id`)
)&ENGINE=MyISAM&DEFAULT&CHARSET=latin1
CREATE&TABLE&&`Table2`&(
&&`id`&int(11)&NOT&NULL,
&&`name`&char(50)&character&set&ucs2&default&NULL,
&&PRIMARY&KEY&&(`id`)
)&ENGINE=InnoDB&DEFAULT&CHARSET=latin1
然后随机的往这两张表中插入一些记录,比如都插入2条。
然后执行一下语句:
select&count(*)&from&Table1
select&count(*)&from&Table2
注意:这里的count(*)和count(id)及count(1)其实没有什么区别了,因为我们新建这张表时已经建好了主键,mysql和大多数的数据库引擎一样会做一些优化,它会去根据主键索引来统计。
以上的语句结果当然都是2。下面分析这两句话的执行过程:
explain&select&count(*)&from&Table1
explain&select&count(*)&from&Table2
得到的执行计划分别如下:
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
| id | select_type | table | type | possible_keys | key& | key_len | ref& | rows | Extra&&&&&&&&&&&&&&&&&&&&&&& |
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
|& 1 | SIMPLE&&&&& | NULL& | NULL | NULL&&&&&&&&& | NULL | NULL&&& | NULL | NULL |&Select
tables optimized away&|&
+----+-------------+-------+------+---------------+------+---------+------+------+------------------------------+
+----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table& | type& | possible_keys | key&&&& | key_len | ref& | rows | Extra&&&&&& |
+----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+
|& 1 | SIMPLE&&&&& | Table2 | index | NULL&&&&&&&&& | PRIMARY | 4&&&&&& | NULL |&&& 3 |&Using
+----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+
由此,我们能很明显的看出Table1是MyISAM类型的表,统计行数时它已经是最优的语句了( Select tables optimized away ,表示已经不能再优化了,一些资料上说MyISAM类型的表将Rows存在一个地方,查询时直接使用即可。)。Table2是InnoDB类型的表,统计行数时它将使用聚集索引进行统计。
转自:/isql/archive//InnoDB_MyISAM.html
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:MySQL中MyISAM与InnoDB的区别_数据库技术_Linux公社-Linux系统门户网站
你好,游客
MySQL中MyISAM与InnoDB的区别
来源:Linux社区&
作者:Linux
MyISAM是MySQL默认存储引擎。每个表最大支持_4.295E+09条记录以及可以支持64个索引字段,二者也可能因不同版本而更大。
MyISAM也支持对Text/Blo字段的全文索引。MyISAM类型的数据库的表和索引是分离的,文件扩展名分别以.MYD和.MYI,这些文件可以直接复制到其他MySQL数据库中使用。(不知算一优点不?)
InnoDB为处理海量数据时最大性能而设计。最大表空间可以是整个文件或磁盘。支持事务处理,外键和行级锁。(在行级锁上应该注意,InnoDB只对where为主键有效,非主键的都会锁全表)
如果需要对表的插入、更新或删除大于查询,选择InnoDB 如果需要设计成关系型数据库,选择InnoDB 如果需要做全文搜索,选择MyISAM 如果有磁盘空间的限制,选择MyISAM 如果在不清楚其他的情况下,选择MyISAM
相关资讯 & & &
& (10/26/:50)
& (02/18/:33)
& (01月22日)
& (02/19/:18)
& (02/15/:21)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款QT二师兄 的BLOG
用户名:QT二师兄
访问量:5774
注册日期:
阅读量:5863
阅读量:12276
阅读量:414978
阅读量:1102484
51CTO推荐博文
& & 现网,使用mysql数据库,访问量单台机器可以达到1w/s,使用了好久,打算对mysql的一些知识做总结。先从最基本的存储引擎入手。& & 我们目前现网使用的存储引擎是: innodb。&&&一. 数据存储上的区别:& & myisam的数据,在磁盘上,存于三个文件,分别为数据文件:.myd, 索引文件:.myi,结构文件:.& & innodb的数据,则受限于操作系统文件的大小,一般为2G。& &&& & 具体影响:& & myisam数据库,索引和数据是分开存储的,索引是有压缩的,所以内存使用率比较高。由于文件存在磁盘,所以,如果对表数据误操作,比如全表update,可以提取之前备份的对应数据文件,dump成sql再导回数据库,补充binlog,就可以了,比innodb效率高。& & innodb使用的是聚集索引,数据和索引,都会存在内存中,而myisam则只是把索引文件存在内存中。根据索引查询数据时,innodb只要一次查询就可以得到相应的数据。而myisam,由于索引和数据是存储在不同的地方,所以需要两次查询;& & myisam相比innodb,索引会保存在不同的数据段,所以更易产生磁盘碎片。& &&& & 2. 事务处理方面& & innodb支持事务处理,myisam不支持事务。& & 如果数据有进行事务方面的操作,一定要先看看表的存储引擎。&&& & 3.select,update,insert,delete& & myisam适合执行大量的select操作。& & innodb 对 update和insert操作更适合,delete操作是一行行的删除,而不会重新建立表。&& & 4.auto_increment的操作& & myisam:可以和其它索引结合起来,进行联合索引;& & innodb:执行auto_increment的计算器,是加载进内存进行计算的,必须包含这一列的索引;& & 5.表的具体行数& & innodb没有保存具体行数,myisam有保存具体的行数,但是如果有where条件限制 select count(*)时,则两种表的表现形式是一样的。& & 如果平时在操作的时候,经常需要查整个表的行数,那使用myisam,性能会比较好些。如果需要用到条件判断,那使用innodb会相对更好些,毕竟记录行数,也需要额外的操作的。&&& & 6.锁& & myisam 只提供表锁, innodb还提供行锁,但是,如果在执行sql时,没法确定要扫描的范围,innodb同样会提供表锁。& & 表锁:同时锁住整个表,可以读,但是不能写;& & 表锁特性:开销小,操作快,锁定粒度大,发生锁冲突的概率大,并发度低;& & 行锁:锁住一行,该行可以读,但是不能写;& & 行锁特性:开销大,操作慢,锁定粒度小,发生锁冲突的概率小,并发度高;& & innodb的行锁,是通过给索引项加锁实现的,只有通过索引检索数据,行级锁才生效,否则使用表锁; &&&& & 总结如下:& & 适用myisam的场景:& & 1. 系统读多写少;& & 2. 不需要事务支持;& & 3. 对内存使用率有要求,innodb的聚集索引,消耗内存非常大,内存使用率高的情况下,磁盘IO产生的频率会比myisam高;& & 4. 经常需要导出数据给别的机器;& & 适用innodb场景:& & 1. 系统update操作比较多,公司目前的游戏部门,绝大多数都是采用innodb;& & 2. 需要事务支持;&& & 3. 对稳定性要求更高,由于myisam是采用多个文件存储,容易出现问题;& & 4. 备份一致性要求高;&& & 个人倾向于使用innodb,因为oracle很早就收购了innodb,后面又收购了mysql,所以,innodb的特性肯定会越来越完善的。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)MySQL存储引擎MyISAM与InnoDB的9点区别
来源:易贤网&& 阅读:46 次&&日期:
温馨提示:易贤网小编为您整理了“MySQL存储引擎MyISAM与InnoDB的9点区别”,方便广大网友查阅!
虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是它俩了。可能有站长并未注意过MySQL的存储引擎,其实存储引擎也是数据库设计里的一大重要点,那么博客系统应该使用哪种存储引擎呢?下面我们分别来看两种存储引擎的区别。
MySQL存储引擎MyISAM与InnoDB的区别
一、InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。
二、MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及设计到安全性就高的应用
三、InnoDB支持外键,MyISAM不支持
四、MyISAM是默认引擎,InnoDB需要指定
五、InnoDB不支持FULLTEXT类型的索引
六、InnoDB中不保存表的行数,如select count(*) from table时,InnoDB需要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含where条件时MyISAM也需要扫描整个表
七、对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引
八、清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表
九、InnoDB支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like '%lee%'
通过以上九点区别,结合个人博客的特点,推荐个人博客系统使用MyISAM,因为在博客里主要操作是读取和写入,很少有链式操作。所以选择MyISAM引擎使你博客打开也页面的效率要高于InnoDB引擎的博客,当然只是个人的建议,大多数博客还是根据实际情况下谨慎选择。我的小站目前就使用MyISAM引擎!
更多信息请查看
更多信息请查看
【】&&&&&【点此处查询各地各类考试咨询QQ号码及交流群】
易贤网手机网站地址:
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
相关阅读 & & &
&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp会员注册
本站不参与评论!()
自觉遵守:爱国、守法、自律、真实、文明的原则
尊重网上道德,遵守中华人民共和国各项有关法律法规
严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的评论
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
您在本站发表的评论,本站有权保留、转载、引用或者删除
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 联想笔记本win8改win7 的文章

 

随机推荐