MySQL的MyISAM和InnoDB引擎的主要区别是什么?
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,1.MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在be
千家信息网最后更新 2025年02月01日MySQL的MyISAM和InnoDB引擎的主要区别是什么?1.MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,
组成一个事务去提交。
2.InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。即MyISAM同一个表上的读锁和写锁是互斥的,MyISAM并发读写时如果等待队列中既有读请求又有写请求,默认写请求的优先级高,
即使读请求先到,所以MyISAM不适合于有大量查询和修改并存的情况,那样查询进程会长时间阻塞。因为MyISAM是锁表,所以某项读操作比较耗时会使其他写进程饿死。
3.InnoDB支持外键,MyISAM不支持。
4.InnoDB的主键范围更大,最大是MyISAM的2倍。
5.InnoDB不支持全文索引,而MyISAM支持。全文索引是指对char、varchar和text中的每个词(停用词除外)建立倒排序索引。MyISAM的全文索引其实没啥用,因为它不支持中文分词,必须由使用者分词
后加入空格再写到数据表里,而且少于4个汉字的词会和停用词一样被忽略掉。
6.MyISAM支持GIS数据,InnoDB不支持。即MyISAM支持以下空间数据对象:Point,Line,Polygon,Surface等。
7.没有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.InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。即MyISAM同一个表上的读锁和写锁是互斥的,MyISAM并发读写时如果等待队列中既有读请求又有写请求,默认写请求的优先级高,
即使读请求先到,所以MyISAM不适合于有大量查询和修改并存的情况,那样查询进程会长时间阻塞。因为MyISAM是锁表,所以某项读操作比较耗时会使其他写进程饿死。
3.InnoDB支持外键,MyISAM不支持。
4.InnoDB的主键范围更大,最大是MyISAM的2倍。
5.InnoDB不支持全文索引,而MyISAM支持。全文索引是指对char、varchar和text中的每个词(停用词除外)建立倒排序索引。MyISAM的全文索引其实没啥用,因为它不支持中文分词,必须由使用者分词
后加入空格再写到数据表里,而且少于4个汉字的词会和停用词一样被忽略掉。
6.MyISAM支持GIS数据,InnoDB不支持。即MyISAM支持以下空间数据对象:Point,Line,Polygon,Surface等。
7.没有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时的作用较大。
支持
索引
数据
事务
全文
计数器
语句
进程
查询
最大
较大
之间
优先级
会长
作用
使用者
只是
同时
多条
对象
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
宏观经济为什么没数据库
佳骏网络技术
软件开发公司没有开支
大学数据库设计orcal
VPS服务器搭建虚拟空间
华为国产服务器芯片和操作系统
网络满格但是无法连接服务器
江苏交友软件开发哪里好
固原软件开发哪家价格实惠
软件开发cc节点是什么意思
华科网络安全学院管理方向
互联网医药的软件开发
初级网络安全工程师认证
修改账户信息后数据库没保存
汕尾自主可控软件开发零售价
服务器svip是干什么的
长沙煜臻网络技术有限公司
深圳元征软件开发公司电话
恐惧与饥饿选哪个服务器
澳洲网络安全招聘
企业网络安全保障
数据库正则替换
网络安全警戒人员简介
国产存储服务器价格
网络技术网络词
20块以下的服务器
迁安网络营销软件开发创造辉煌
数据库文件格式后缀
股票软件开发高手
2k20手游怎么连接服务器