当前位置:   article > 正文

金三银四面试题(十七):MySQL面试都问什么(2)

金三银四面试题(十七):MySQL面试都问什么(2)

今天我们继续盘点那些高频的MySQL面试题。

说说InnoDB与MyISAM的区别

  1. InnoDB 支持事务,MyISAM 不支持,对于InnoDB 每一条SQL 语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL 语言放在begin 和commit 之间,组成一个事务;
  2. InnoDB 支持外键,而MyISAM 不支持。对一个包含外键的InnoDB 表转为MYISAM 会失败;
  3. InnoDB 是聚集索引,数据文件是和索引绑在一起的,必须有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而MyISAM 是非聚集索引,数据文件是分
    离的, 索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
  4. InnoDB 不保存表的具体行数,执行
select count(*) from table
  • 1

时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;

  1. Innodb 不支持全文索引,而MyISAM 支持全文索引,查询效率上MyISAM 要高;

  2. 在MySQL 5.1 及之前的版本中,MyISAM 是默认的存储引擎,而在MySQL 5.5 版本以后,默认使用InnoDB 存储引擎。

  3. 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类加载与垃圾回收

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/390981
推荐阅读
相关标签
  

闽ICP备14008679号