Java----MySQL常见面试题(三)

目录

1.常用的存储引擎?InnoDB与MyISAM的区别?

2.MySQL默认InnoDB引擎的索引是什么数据结构?

3.索引的分类? 

4.SQL性能分析?

5.索引失效的情况有哪些(正确使用索引的原则)? 

 6.索引设计原则?


1.常用的存储引擎?InnoDB与MyISAM的区别?

存储引擎:

存储引擎就是存储数据、建立索引、更新、查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

 

InnoDB存储引擎:

InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL 5.5之后,InnoDB是默认的MySQL存储引擎。由于支持事务,支持外键,支持行级锁,所以在绝大多数场景下都是最佳选择。

特点:

  1. DML操作遵循ACID模型,支持事务。
  2. 支持行级锁(行级锁是MySQL中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁),可以提高并发访问的性能。
  3. 支持FOREIGN KEY约束(外键约束),保证数据的完整性和正确性。
  4. xxx.ibd文件:xxx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件。存储该表的表结构(frm、sdi),数据和索引。

MyISAM存储引擎

MyISAM是MySQL早期的默认存储引擎(5.5版本之前)。适用于对事务的完整性没有要求,或以select,insert为主的应用场景,比如Web,数据仓库等等。

特点:

  1. 不支持事务。
  2. 不支持外键。 
  3. 支持表锁(表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁),但是不支持行锁。
  4. 访问速度快。
  5. xxx.sdi:存储表结构信息。xxx.MYD:存储数据。xxx.MYI:存储索引。

Memory存储引擎:

Memory引擎的表数据是存储在内存中的,由于受到硬件问题或者断电问题的影响,无法保障数据的安全性,所以只能将这些表作为临时表或者缓存来使用。

特点:

  1. 数据存放在内存之中,访问的速度快。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值