1.什么是事务
事务是一种机制、一个操作序列,是访问和更新数据库的程序执行单元。事务中包含一个或多个数据库操作命令,会把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。
2.可能导致索引失效的场景
1.联合索引不满足最佳左匹配原则
2.模糊查询字段前面为不确定的匹配字符
3.索引列参与了运算
4.索引列使用了函数
5.索引列存在类型转换
6.索引列使用了is not null查询
7.使用了不等于(<>、!=)导致索引失效
8.or前后使用了不是索引列也会导致索引失效
3.聚簇索引和非聚簇索引的区别
聚簇索引:索引和数据都保存在叶子节点中,找到索引就找到数据,一个表只能有一个聚簇索引
非聚簇索引:索引和数据分开存储,叶子节点存储索引和数据物理地址,找到物理地址需要回表查询。一个表可以有多个聚簇索引。
4.datetime和timestamp的区别
1.存储方式不同:对于timestamp,数据库会把客户端插入的时间转成UTC(世界标准时间)进行存储。查询时又转化为客户端当前所在的时区的时间返回。对于datetime,存储不做任何改变,保持原样输入输出。
2.范围不同
3.存储大小不同
5.分组查询详解
https://blog.csdn.net/weixin_50179223/article/details/124025809
6.如何优化SQL语句
1.分析sql的结构,是否查询了不必要的字段。
2.分析sql执行语句是否命中索引。
3.如果sql很复杂,优化sql的结构
4.如果表数据量太大,考虑分表。
7.数据库三大范式
第一范式:每个列都是不可再分。
第二范式:在第一范式基础上,非主键列完全依赖于主键,而不是只依赖一部分。
第三范式:在第二范式基础上,非主键列只依赖于主键,不依赖于其他非主键。
8.SQL执行顺序
1.客户端建立连接,发送用户信息验证,权限验证
2.查询缓存,查到直接返回
3.缓存没有,调用解析器,对sql词法语法解析
4.调用优化器,对sql优化。
5.执行查询引擎,返回结果。