天天看点

MySQL数据库

1、 sql 的 select 语句完整的执行顺序

1 )from 子句组装来自不同数据源的数据;

2 )where 子句基于指定的条件对记录行进行筛选;

3 )group by 子句将数据划分为多个分组;

4)使用聚集函数进行计算;

5)使用 having 子句筛选分组;

6)计算所有的表达式;

7) select 的字段;

8)使用 order by 对结果集进行排序。

2、事务的基本要素(acid)

原子性( atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。

一致性( consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。

 隔离性( isolation):是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离,不能相互影响。

持久性( durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。

3、mysql事务隔离级别

MySQL数据库

脏读:一个事务读取到了另一个事务中尚未提交的数据

不可重复读:一个事务中两次读取的数据内容不一致。

幻读: 一个事务中多次读取,数据的数量不一样。

4、简述在 mysql数据库中 myisam和 innodb的区别

1.myisam存储引擎

主要特点: mysql5.5版本之前的默认存储引擎 支持表级锁(表级锁是mysql中锁定粒度最大的一种锁,表示对当前操作的整张表加锁); 不支持事务,外键。

适用场景:对事务的完整性没有要求,或以select、insert为主的应用基本都可以选用myisam。在web、数据仓库中应用广泛。

特点:

1)不支持事务、外键

2)每个myisam在磁盘上存储为3个文件,文件名和表名相同,扩展名分别是

  .frm ------- 存储表定义;

  .myd -------- mydata 存储数据;

  .myi -------- myindex,存储索引。

2.innodb存储引擎

主要特点: mysql5.5版本之后的默认存储引擎; 支持事务; 支持行级锁(行级锁是mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁); 支持聚集索引方式存储数据。

5、什么是锁?

  答:数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。

基本锁类型:锁包括行级锁和表级锁