范文资料网>人事资料>招聘与面试>《mysql数据库面试问题

mysql数据库面试问题

时间:2022-04-05 14:29:39 招聘与面试 我要投稿
  • 相关推荐

mysql数据库面试问题

语句应该考虑哪些安全性?

mysql数据库面试问题

1.防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语句绑定变量。

2.最小权限原则,特别是不要用root账户,为不同的类型的动作或者组建使用不同的账户。

3.当sql运行出错时,不要把数据库返回的错误信息全部显示给用户,以防止泄漏服务器和数据库相关信息。

2.简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响。

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。

普通索引允许被索引的数据列包含重复的值,如果能确定某个数据列只包含彼此各不相同的值,在为这个数据索引创建索引的时候就应该用关键字UNIQE把它定义为一个唯一所以,唯一索引可以保证数据记录的唯一性。

主键,一种特殊的唯一索引,在一张表中只能定义一个主键索引,逐渐用于唯一标识一条记录,是用关键字PRIMARY KEY来创建。

索引可以覆盖多个数据列,如像INDEX索引,这就是联合索引。

索引可以极大的提高数据的查询速度,但是会降低插入删除更新表的速度,因为在执行这些写操作时,还要操作索引文件。

3.一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ?

如果表的类型是MyISAM,那么是18。

因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。

如果表的类型是InnoDB,那么是15。

InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失。

4.请简述项目中优化sql语句执行效率的方法,从哪些方面。sql语句性能如何分析?

1.尽量选择较小的列

2.将where中用的比较频繁的字段建立索引

http://www.ahsrst.cn子句中避免使用‘*’

4.避免在索引列上使用计算,not,in和<>等操作

5.当只需要一行数据的时候使用limit 1

6.保证表单数据不超过200w,适时分割表

针对查询较慢的语句,可以使用explain来分析该语句具体的执行情况

http://www.ahsrst.cn()和mysql_fetch_array()的区别

这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],$row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):$row['username'], $row['passwd']。

常见mysql数据库面试问题2015-04-28 18:32 | #2楼

1,mysql的复制原理以及流程。

(1)先问基本原理流程,3个线程以及之间的关联。

(2)再问一致性延时性,数据恢复。

(3)再问各种工作遇到的复制bug的解决方法

2,mysql中myisam与innodb的区别,至少5点。

(1) 问5点不同

(2) 问各种不同mysql版本的2者的改进

(3)2者的索引的实现方式

3,问mysql中varchar与char的区别以及varchar(50)中的30代表的涵义。

(1)varchar与char的区别

(2)varchar(50)中50的涵义

(3)int(20)中20的涵义

(4)为什么MySQL这样设计?

[备注] 本人也面试了近12个2年mysql dba经验的朋友,很少能回答出第(2)以及(4)题。

4,问了innodb的事务与日志的实现方式。

(1)有多少种日志

(2)日志的存放形式

(3)事务是如何通过日志来实现的,说得越深入越好。

5,问了mysql binlog的几种日志录入格式以及区别

(1)各种日志格式的涵义

(2)适用场景

(3)结合第一个问题,每一种日志格式在复制中的优劣。

6,问了下mysql数据库cpu飙升到500%的话他怎么处理?

(1) 没有经验的,可以不问

(2)有经验的,问他们的处理思路

7,sql优化。

(1)explain出来的各种item的意义

(2)profile的意义以及使用场景。

(3)explain中的索引问题。

8,  备份计划,mysqldump以及xtranbackup的实现原理,

(1) 备份计划

(2)备份恢复时间

(3)备份恢复失败如何处理

9,  500台db,在最快时间之内重启。

10, 在当前的工作中,你碰到到的最大的mysql db问题是?

11,  innodb的读写参数优化

(1)读取参数,global buffer pool以及 local buffer

(2)写入参数

(3)与IO相关的参数

(4)缓存参数以及缓存的适用场景

12 ,请简洁地描述下MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

13,表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问

(1)您 是选择拆成子表,还是继续放一起?

(2)写出您这样选择的理由?

14,MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?