315道面试题【116-130】

1、列举常见的关系型数据库和非关系型都有那些?

关系型:Mysql / Oracle / SQL Server
非关系型:redis / MongoDB…

2、MySQL常见数据库引擎及比较?

MySQL数据库中的表引擎一般常用两种:MyISAM和InnoDB
区别:
MyISAM类型的数据文件有三个1.frm(结构)、2.MYD(数据)、3.MYI(索引)
MyISAM类型中的表数据增 删 改速度快,不支持事务,没有InnoDB安全。
InnoDB类型的数据文件只有一个 .frm
InnoDB类型的表数据增 删 改速度没有MyISAM的快,但支持事务,相对安全。

3、简述数据三大范式?

1, 每一列只有一个值
2, 每一行都能区分。
3, 每一个表都不包含其他表已经包含的非主关键字信息。

4、什么是事务?MySQL如何支持事务?

同时对一组数据进行操作的语句就成为事务
在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。

5、简述数据库设计中一对多和多对多的应用场景?

一对多 :一个学生对多门考试成绩
多对多 :一个老师教多个学生 一个学生让好几个老师教

6、如何基于数据库实现商城商品计数器?

设置一个商品计数的列 自动递增为1

8、简述触发器、函数、视图、存储过程?

触发器:制定一个sql条件和要做的事当满足的时候自动触发并执行要做的事
函数(存储过程):Mysql储存过程简而言之就是一组已经好的命令,需要使用的时候拿出来用就可以
视图:将一个写好的查询语句封装起来 当调用的时看到的数据就是满足条件的数据 不用每次都写同样的代码

9、MySQL索引种类

  • 唯一索引
  • 主键索引
  • 普通索引
  • 全文索引

10、索引在什么情况下遵循最左前缀的规则?

联合索引

11、主键和外键的区别?

这里写图片描述

12、MySQL常见的函数?

*concat(s1,s2,…Sn) 连接s1,s2..Sn为一个字符串
*length(str) 返回值为字符串str 的长度
*datediff(expr,expr2) 返回起始时间和结束时间的间隔天数

13、列举 创建索引但是无法命中索引的8种情况。

1、如果条件中有or,即使其中有条件带索引也不会使用
2、对于多列索引,不是使用的第一部分(第一个),则不会使用索引
3、like查询是以%开头
4、如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引5、如果mysql估计使用全表扫描要比使用索引快,则不使用索引

14、如何开启慢日志查询?

1.查看慢查询是否开启
show variables like ‘slow_query%’;
show variables like ‘long_query_time’;
2.打开慢查询
set global slow_query_log=’ON’;
3.设置慢查询日志记录文件
set global slow_query_log_file=’/var/lib/mysql/test-10-226-slow.log’;
4.指定慢查询事件
set global long_query_time=1;

15、数据库导入导出命令(结构+数据)?

导出:
mysqldump -u root -p 库名 >导出的文件.sql
导入:
mysql -u root -p 库名

猜你喜欢

转载自blog.csdn.net/qq_37275405/article/details/80993363