Mysql (面试篇)

目录

唯一索引比普通索引快吗

MySQL由哪些部分组成,分别用来做什么

MySQL查询缓存有什么弊端,应该什么情况下使用,8.0版本对查询缓存由上面变更

MyISAM和InnoDB的区别有哪些

MySQL怎么恢复半个月前的数据

MySQL事务的隔离级别,分别有什么特点

做过哪些MySQL索引相关优化

一千万条数据的表,如何分页查询

订单表数据量越来越大导致查询缓慢,如何处理

MySQL中有哪几种锁

分页如何显示前50行?

数据库中的事物是什么?

SQL注入漏洞产生的原因?如何防止?

与Oracle相比,Mysql有什么优势

符合区分float和double?

在Mysql中ENUM的用法式什么?

如何定义REGEXP?

Char和varChar的区别?

列的字符串里类型可以是什么?

Like声明中% 和_是声明意思?


大家一起加油 !!!

唯一索引比普通索引快吗

唯一索引不一定比普通索引快,还可能慢

MySQL由哪些部分组成,分别用来做什么

1.Server

        连接器:管理连接,权限验证。

        分析器:词法分析,语法分析

        优化器:执行计划生成,索引的选择

        执行器:操作存储引擎,返回执行结果

2. 存储引擎:存储数据,提供读写接口

MySQL查询缓存有什么弊端,应该什么情况下使用,8.0版本对查询缓存由上面变更

1. 查询缓存可能会失效非常频繁,对于一个表,只要有更新,该表的全部查询缓存都会被清空,隐藏对于频繁更新的表来说,查询缓存不一定能起到正面效果。

2. 对于读多于写的表可以考虑使用查询缓存。

3. 8.0版本的查询缓存功能被删了。

MyISAM和InnoDB的区别有哪些

InnoDB支持事务,MyISAM不支持

InnoDB支持行级锁,MyISAM支持表锁

InnoDB支持多版本并发工作(MVVC),MyISAM不支持

InnoDB支持外键,MyISAM不支持

MyISAM支持全文索引,InnoDB部分不支持

事务,外键,锁,并发,索引

MySQL怎么恢复半个月前的数据

通过整库备份+binlog进行恢复,前提是要有定期整库备份且保存了binlog日志。

MySQL事务的隔离级别,分别有什么特点

1. 读未提交(RU):一个事务还没提交时,它作的变更就被别的事物看到。

2. 读提交(RC):一个事物提交之后,它做的变更才会被其他事物看到。

3. 可重复读(RR):一个事物执行过程中看到的数据,总是跟这个事物在启动时看到的数据时一致的。当然在可重复读隔离即被下,未提交变更对其他事物也时不可见的。

4. 串行化(S):对于同一记录,读写都会加锁。当出现读写锁冲突的时候,后访问的事物必须等前一个事物执行完成才能继续执行。

做过哪些MySQL索引相关优化

1. 尽量使用主键查询:聚簇索引上存储了全部数据,相比普通索引查询,减少了回表的消耗

2. 适当使用联合索引,减少表判断的消耗

3. 若是频繁查询某一列数据,可以考虑利用覆盖索引避免回表。

4. 联合索引将高频字段放在最左边

一千万条数据的表,如何分页查询

数据链过大的情况下,limit offset分页会越扫描越慢,可以配合当前页最后一条id进行查询,select * from t where id > #{id} limit #{limit}当然,这种情况下id必须时有序的,这也是有序id的好处之一

订单表数据量越来越大导致查询缓慢,如何处理

分库分表,一般高频的都是近期订单,将订单按照月份或年份,进行分库分表,订单ID最好包含时间(如雪花算法生成),此时技能更具订单ID直接获取到订单记录,也能按照时间进行查询。

MySQL中有哪几种锁

1. 表锁:开销小,加锁快,不会出现死锁;锁的力度大,发生冲突概率高,并发低。

2. 行锁:开销大,加锁慢;会出现死锁;所得粒度小,发生冲突概率低,并发度高

3. 页面锁:开销和加锁时间介于表锁和行锁之间;会出现死锁;锁的颗粒度介于表锁和行锁之间,并发度一般

分页如何显示前50行?

select * from table limit (0,50)
select * from table limit 50 offset 0;

数据库中的事物是什么?

事物(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事物成功,即使只有一个操作失败,事物也不成功。如果所有操作完成,事物则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事物将回滚,该事务所有操作的影响都将取消。

事务特性:

1. 原子性:要么全部成功,要么全部失败

2. 一致性:一致性是指数据库在事务执行前后都处于一致的状态。更具体地说,一致性要求事务的执行不会违反数据库的完整性约束,如主键唯一性、外键引用完整性、检查约束等。

3. 隔离性:不允许该事务数据提交给其他事务

4. 持久性:永久保存,宕机不会导致数据丢失

SQL注入漏洞产生的原因?如何防止?

1. 过滤关键字:update,insert,delete,select,*

2. 提高数据库和字段命名,防止被猜到

与Oracle相比,Mysql有什么优势

1. Mysql是开源软件,随时可用,无需付费

2. Mysql是便携式的

3. 带有命令提示符GUI

4. 使用Mysql查询浏览器支持管理

符合区分float和double?

浮点数:8位精度存储,并且有4个字节

double:18位精度存储,有8个字节

在Mysql中ENUM的用法式什么?

ENUM是一个字符串对象,用于指定一组预定的值,并可在创建表时使用。

Create table size (name ENUM( 'Smai','Medium','Large' ));

如何定义REGEXP?

REGEXP是模式匹配,其中匹配模式在搜索值得任何位置。

Char和varChar的区别?

Char和varChar类型在存储和检索房间有所不同

Char列长度固定为创建表声明的长度,长度值范围是1到255,当char值被存储时,我们被用空格填充到特定长度,检索char值时需要删除尾随空格。

列的字符串里类型可以是什么?

字符串类型是:

set

blob

enum

char

test

varchar

Like声明中% 和_是声明意思?

%对应于0个活更多字符,_只是Like语句中的一个字符

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值