MySQL一些基本知识

MySQL一些基本知识

1、介绍mysql分页

使用limit字句

在所有的查询结果只需要返回前五行记录: … limit 5;

在所有查询结果,从第五行开始返回五行记录: … limit 5,5;

总结:带一个值的limit总是从第一行开始,给出的行数为返回的行数,带两个值的limit可以指定从行号为第一个值的位置开始。

优化limit分页可以使用到索引覆盖扫描,而不是查询到所有的列。查询太多数据,返回的数据很少的时候,要么是优化大偏移量的查询,要么是在页面中限制分页的数量。2、

2、介绍SQL中的聚合函数

COUNT()、MAX()、MIN()、SUM()、AVG()

COUNT(*):计算表中的总的行数,不管某列是否有数值或为空值

COUNT(字段名):计算指定下列总的行数,计算时将忽略空值的行

COUNT()可以与GROUP BY()一起使用,计算每个分组的总和

AVG():返回的行数和每一行数据的和,求得指定的列数据的平均值

与GROUP BY()计算每个分组的平均值

SUM():一个求和的函数,返回指定列值的总和

与GROUP BY()计算每个分组的总和

MAX():返回指定列的最大值,与group by一起用是求每个分组的最大值

同理min跟max是一样的道理

3、表与表之间是怎么样关联的

是内连接和外连接

内连接是inner join,返回两个表中所有符合条件的数据,不满足的不会被查询出来

外连接是分为左外连接和右外连接,左外连接是返回左表中的所有记录和右表中满足连接条件的记录。右外连接是以右表为基础,返回右表中所有记录和左边满足条件的记录。

此外,比较常见的关联关系有:一对多,多对多,自关联

MySQL中是不支持完全外连接的

4、行转列

使用case…when…then…

使用if()函数

5、SQL注入的理解

是将SQL代码伪装到输入参数中,传输到服务器解析并执行的一种攻击手法。

6、MySQL索引(INDEX)

索引是一个单纯存储在磁盘上的数据库结构,包含对数据表所有记录的引用指针

可以加快数据的查询速度,加速表与表之间的连接。

如果是增删查改比较频繁的话对索引不利,在进行insert、update、delete的时候会对索引也有更新和调整

7、如何判断索引是否生效

通过explain语句 describe,分析查询语句

比如说explain select * from book where name=“linghuan”;

索引有两个存储引擎,myisam innodb

8、重构索引

1、表中频繁发生update、delete的操作

1、表中发生了alter table…move的操作

怎么判断?

先看倾斜是否严重,是否浪费空间

9、说说对事务的了解

事务的操作中,要么都执行,要么都不执行

a:原子性是指整个事务中不可分割的工作单位,任何一个SQL语句执行失败,已经执行成功的也要撤销,退回到执行之前的状态

c:一致性是从一种状态到另外一种状态。完整性约束没被破坏

i:隔离性是指事务提交前要对别的事务不可见,这通常使用锁来实现

D:持久性是事务一旦提交,结果就是永久的,即使发生宕机也会将数据恢复

10、对MySQL四种隔离级别

读未提交

读已提交

可重复读

串行化

脏读:事务A读到了事务B未提交的数据(脏数据)

不可重复读:在事务A先后两次读取同一个数据,两次读取的结果不一样,这种现象是不可重复读

幻读:在事务A按照某个条件先后两次查询数据库,两次查询的结果条数不同,与不可重复读的差别是前者是数据变了,后者是数据的行数变了

11、锁机制

锁机制是区别于文件系统的一个关键特性,锁机制用于管理对共享资源的并发访问

共享锁:允许事务读一行数据

排它锁:允许事务删除或更新一行数据

12、死锁

是指两个或两个以上的事务在执行过程中,因争夺资源而造成的一种互相等待的现象。

解决办法:超时,当一个等待时间超过设置的阈值的时候,其中一个事务回滚,另外一个等待的事务就能够进行下去

13、介绍数据库的三大范式

第一范式:数据库表每一个都是不可分割的原子数据项,不可重复的域

第二范式:在第一范式的基础上,非码属性必须完全依赖于候选码,消除部分函数依赖

第三范式:在第二范式的基础上,任何非主属性不依赖于其他非主属性,消除传递依赖

14、redo log 、undo log 、binlog的了解

binlog是二进制文件,记录MySQL所有修改数据库的操作,然后以二进制形式存储在日志文件中

redo log:重做日志,实现事务的持久性,由两部分组成,一部分是内存中的重做日志缓存,是易失的;二是重做日志文件,是持久的。基本上是按照顺序写的

undo log:保证事务的持久性,帮助事务回滚以及MVCC(多版本的并发控制协议)。是随机读写的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值