番禺制作网站技术,深圳互联网,网页设计期末作品素材,it外包费用今天我们继续盘点那些高频的MySQL面试题。
说说InnoDB与MyISAM的区别
InnoDB 支持事务#xff0c;MyISAM 不支持#xff0c;对于InnoDB 每一条SQL 语言都默认封装成事务#xff0c;自动提交#xff0c;这样会影响速度#xff0c;所以最好把多条SQL 语言放在begin 和comm…今天我们继续盘点那些高频的MySQL面试题。
说说InnoDB与MyISAM的区别
InnoDB 支持事务MyISAM 不支持对于InnoDB 每一条SQL 语言都默认封装成事务自动提交这样会影响速度所以最好把多条SQL 语言放在begin 和commit 之间组成一个事务InnoDB 支持外键而MyISAM 不支持。对一个包含外键的InnoDB 表转为MYISAM 会失败InnoDB 是聚集索引数据文件是和索引绑在一起的必须有主键通过主键索引效率很高。但是辅助索引需要两次查询先查询到主键然后再通过主键查询到数据。因此主键不应该过大因为主键太大其他索引也都会很大。而MyISAM 是非聚集索引数据文件是分 离的 索引保存的是数据文件的指针。主键索引和辅助索引是独立的。InnoDB 不保存表的具体行数执行
select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数执行上述语句时只需要读出该变量即可速度很快 Innodb 不支持全文索引而MyISAM 支持全文索引查询效率上MyISAM 要高 在MySQL 5.1 及之前的版本中MyISAM 是默认的存储引擎而在MySQL 5.5 版本以后默认使用InnoDB 存储引擎。 InnoDB 支持行锁而MyISAM 不支持行级锁换句话说MyISAM 会对整张表加锁而不是针对行。 8 MyISAM 可被压缩存储空间较小而且MyISAM 在筛选大量数据时非常快。相比之下InnoDB 需要更多存储空间会在内存中建立其专用的缓冲池用于高速缓冲数据和索引。
数据库的事务
首先要搞清楚什么是事务 多条sql 语句要么全部成功要么全部失败。
事务的特性 数据库事务特性 原子性Atomic 、一致性Consistency 、隔离性Isolation 、持久性Durability。简称ACID。
原子性组成一个事务的多个数据库操作是一个不可分割的原子单元只有所有操作都成功 整个事务才会提交。任何一个操作失败已经执行的任何操作都必须撤销让数据库返 回初始状态。一致性事务操作成功后数据库所处的状态和它的业务规则是一致的。即数据不会被破坏。如A 转账100 元给B不管操作是否成功A 和B 的账户总额是不变的。隔离性在并发数据操作时不同的事务拥有各自的数据空间它们的操作不会对彼此产生干扰持久性一旦事务提交成功事务中的所有操作都必须持久化到数据库中
往期文章
金三银四面试题十六MySQL面试都问什么1
金三银四面试题十五Java基础问题6
金三银四面试题十四Java基础问题5
金三银四面试题十三Java基础问题4
金三银四面试题十二Java基础问题3
金三银四面试题十一Java基础问题2
金三银四面试题十Java基础问题1
金三银四面试题九JVM常见面试题(3)
金三银四面试题八JVM常见面试题(2)
金三银四面试题七JVM常见面试题(1)
金三银四面试题六对象大小知多少
金三银四面试题五JVM之TLAB
金三银四面试题四Full GC 和 Minor GC
金三银四面试题三JVM内存模型
金三银四面试题二数据库缓存的数据一致性
金三银四面试题一JVM类加载与垃圾回收