MySQL 50 道面试题及答案 MySQL 是一种关系数据库管理系统,以下是对 MySQL 中各种知识点的总结: 锁 MySQL 中有三种锁:表级锁、行级锁、页面锁。表级锁开销小,加锁快,锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁开销大,加锁慢,锁定粒度最小,发生锁冲突的概率最低,并发度最高。页面锁开销和加锁时间界于表锁和行锁之间,锁定粒度界于表锁和行锁之间,并发度一般。 表格类型 MySQL 中有五种类型的表格:MyISAM、Heap、Merge、INNODB、ISAM。 MyISAM 和 InnoDB 的区别 MyISAM 不支持事务,但是每次查询都是原子的;支持表级锁,即每次操作是对整个表加锁;存储表的总行数;一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件;采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。InnoDb 支持 ACID 的事务,支持事务的四种隔离级别;支持行级锁及外键约束;因此可以支持写并发;不存储总行数:一个 InnoDb 引擎存储在一个文件空间。 事务隔离级别 MySQL 中 InnoDB 支持的四种事务隔离级别为:read uncommitted、read committed、repeatable read、serializable。 CHAR 和 VARCHAR 的区别 CHAR 和 VARCHAR 类型在存储和检索方面有所不同。CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255 当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。 主键和候选键 表格的每一行都由主键唯一标识,一个表只有一个主键。主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。 MyISAM 表格存储 每个 MyISAM 表格以三种格式存储在磁盘上:.“. frm”文件存储表定义、数据文件具有“. MYD”扩展名、索引文件具有“. MY1”扩展名。 优化 DISTINCT DISTINCT 在所有列上转换为 GROUP BY,并与 ORDER BY 子句结合使用。 显示前 50 行 在 MySQL 中,使用以下代码查询显示前 50 行:SELECT * FROM LIMIT 0,50; 索引创建 任何标准表最多可以创建 16 个索引列。 NOW() 和 CURRENT_DATE() 的区别 NOW() 命令用于显示当前年份,月份,日期,小时,分钟和秒。CURRENT_DATE() 仅显示当前年份,月份和日期。 非标准字符串类型 非标准字符串类型有 TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT。 myisamchk myisamchk 是用来压缩 MyISAM 表,这减少了磁盘或内存使用。 MyISAM Static 和 MyISAM Dynamic 在 MyISAM Static 上的所有字段有固定宽度。动态 MyISAM 表将具有像 TEXT,BLOB 等字段,以适应不同长度的数据类型。 TIMESTAMP 如果一个表有一列定义为 TIMESTAMP,将发生什么?每当行被更改时,时间戳字段将获取当前时间戳。 AUTO_INCREMENT 列设置为 AUTO_INCREMENT 时,如果在表中达到最大值,会发生什么情况?它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。 LAST_INSERT_ID LAST_INSERT_ID 将返回由 Autoincrement 分配的最后一个值,并且不需要指定表名称。 索引查看 索引是通过以下方式为表格定义的:SHOW INDEX FROM <tablename>; LIKE 声明 % 对应于 0 个或更多字符 n_ 只是 LIKE 语句中的一个字符。
剩余12页未读,继续阅读
- 粉丝: 120
- 资源: 1689
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助