面试题04有关Mysql

1. 一张表里面有ID自增主键,当insert了17条数据以后,删除了15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的ID是15还是18?

  1. 如果类型为MyIsAM,那么是18
    因为MyISAM会把自增主键的最大ID记录到数据库文件里,重启Mysql自增主键最大ID不会丢失。
  2. 如果类型是InnoDB那么是15
    InnoDB只是把自增主键的最大ID记录到内存中,重启会导致最大ID的丢失。

2.Heap表是什么?

  1. HEAP表存在于内存中,用于临时高速存储。
  2. BLOB或者Text字段是不允许的,只可以使用比较运算符,=,<,>
  3. 不支持Auto_INCREMENT
  4. 索引不可为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 关键字都是将两个结果集合并为一 个,
但这两者从使用和效率上来说都有所不同。

  1. 对重复结果的处 理:UNION 在进行表链接后会筛选掉重复的记录,Union All 不会去除 重复记录。
  2. 对排序的处理**:Union** 将会按照字段的顺序进行排 序;
  3. 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 '点$';

猜你喜欢

转载自blog.csdn.net/houzhicongone/article/details/119977166