MySQL面试题(2)

简述在MYSQL数据库中MyISAM和InnoDB的区别

不支持事务,但每次查询都是原子的;

支持表级锁,每次操作对整个表加锁;

存储表的总行数;

一个MYISAM有个三个文件:表结构文件、 索引文件 、数据文件;

采用非聚集索引,索引文件的数据域存储指向数据文件的指针,辅索引与主索引基本一致,但是辅索引不用保证唯一性

InnoBD:

支持ACID的事务,支持事务的四种隔离级别;

支持行级锁及外键约束;可支持写并发;

不存储总行数:

一个InnoDb引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能多个(设置为独立表空间,表大小受操作系统控制,一般为2G),受操作系统文件大小的控制;

主键索引采用聚集索引(索引的数据域存储文件本身),辅索引的数据域存储主键的值,因此从辅索引查找数据,先通过辅索引找到主键值,再访问辅索引;最好使用自增主键,防止插入数据时,为维持B+树结构,文件的大调整。

MYSQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

1. read uncommited 已读未提交数据

2.read commmited 脏读,不可重复读

3. repeatable read 可重复读

4.serializable 串行事务

CHAR 和 VARCHAR的区别

VARCHAR是变长字符串。

1、CHAR 和 VARCHAR 类型在存储和检索方面有所不同

2、CHAR 列长度固定为创建表时声明的长度,长度值范围是 空格填充到特定长度,检索 CHAR 值时需删除尾随空格

为了便于理解,我用CHAR定长类型来对比介绍。先看两个小例子:

  • VARCHAR(4),最多存储4个字符,有几个字符存储几个。存储字节数 = 数据值的字节和 + 1字节(长度标识,后面会讲到)

  • CHAR(4),最多存储4个字符,不足4个尾部用空格填满。存储字节数 = 数据值的字节和 + 补位空格数

概括地说,VARCHAR和CHAR都是MySQL的字符串类型,存储多个字符、可设置最大存储的字符数,存储开销都与数据长度、字符集有关。是MySQL最常用的字符串类型。

主键和候选键的区别

表格的每一行都有主键标识,一个表只有一个主键

主键也是候选键,候选键可以被指定为主键,并可以用于任何外键引用。

myisamchk 是用来做什么的?

用来压缩MyISAM,减少磁盘或者内存使用

MyISAM Static 和 MyISAM Dynamic有什么区别?

在MyISAM Static 上的所有字段有固定宽度,动态MyISAM表具有像TEXT,BLOB等字段,以适应不同长度的数据类型

MyISAM Static在受损情况下更容易恢复,

如果一个表有一列被定义为 TIMESTAMP,会发生什么?

每当行被更改时,时间戳字段将会获取当前时间戳

列设置为AUTO INCRMENT时,如果在表中达最大值,会停止递增,任何进一步的插入都将产生错误,因为密钥已被停用。

怎样才能找出最后一次插入时分配了哪个自动增量?

LAST_INSERT_ID将返回有Auto_increment分配的最后一个值,并且不需要指定表名称

怎样看到为表格定义的所有索引?

SHOW INDEX FROM  <tableName>;

LIKE 声明中的%和_是什么意思?

%对应0个或者更多字符,_只是LIKE语句中的一个字符。

如何在unix和MySQL 时间戳之间转换?

UNIX_TIMESTAMP是MySql时间戳转换为Unix时间戳的命令

FROM_UNIXTIME是从Unix时间戳转换为MySql时间戳的命令

列对比运算符有<>,=,<=,<,>,>=,<<,>>,<=>,AND,OR,LIKE.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序媛小方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值