面试题04有关Mysql
Posted SmallCuteMonkey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题04有关Mysql相关的知识,希望对你有一定的参考价值。
1. 一张表里面有ID自增主键,当insert了17条数据以后,删除了15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的ID是15还是18?
- 如果类型为MyIsAM,那么是18
因为MyISAM会把自增主键的最大ID记录到数据库文件里,重启Mysql自增主键最大ID不会丢失。 - 如果类型是InnoDB那么是15
InnoDB只是把自增主键的最大ID记录到内存中,重启会导致最大ID的丢失。
2.Heap表是什么?
- HEAP表存在于内存中,用于临时高速存储。
- BLOB或者Text字段是不允许的,只可以使用比较运算符,=,<,>
- 不支持Auto_INCREMENT
- 索引不可为NULL
Mysql默认端口号3306
3.与Oracle相比,Mysql有什么优势?
- Mysql是开源软件,随时可用,无需付费。
- mysql是便携式的
- 带有GUI
- 使用Mysql查询浏览器支持管理。
4.Mysql的四个隔离级别?
read commited:脏读,不可重复读
read uncommited:读未提交的数据。
repeatable read:可重复读
serializable:串行事物
5.Mysql中的Enum用法是什么?
**ENUM是一个字符串对象,用于指定一组预定义的值,**并可在创建表时使用。
Create table size(name ENUM(‘Hou’,‘hongSi’,‘Large’));
6.Mysql中的列的字符串类型可以是什么?
Set BloB Enum char text varchar.
7.有过哪些数据库优化方面的经验?
1.用PrepareStatement,一般来说比Statement性能高:因为PreparStatment是经过预编译的。
2.有外键约束会影响插入和删除的性能,如果程序可以保证数据完整,删除外键。
3.Union All要比UNION快很多,所以如果确认合并的两个结果集不包含重复数据且不需要排序的话,那么 就使用Union All.
8.Union和Union All 的区别?
UNION 和 UNION ALL 关键字都是将两个结果集合并为一 个,
但这两者从使用和效率上来说都有所不同。
- 对重复结果的处 理:UNION 在进行表链接后会筛选掉重复的记录,Union All 不会去除 重复记录。
- 对排序的处理**:Union** 将会按照字段的顺序进行排 序;
- UNION ALL 只是简单的将两个结果合并后就返回。
9.Regxp和like有什么区别?
like有两种:_ 和%;
匹配字符为 两个长度< /font> 的带有点的:
SELECT *from category where category_name like '点_';
匹配带有点的字符串:
select *from category where category_name like '%点%';
正则有多种形式:这里只列举两种形式的
匹配点开头的字符串:
select *from category where category_name regexp '^点';
匹配以点结束的字符串:
select *from category where category_name regexp '点$';
以上是关于面试题04有关Mysql的主要内容,如果未能解决你的问题,请参考以下文章