数据库

注册

 

发新话题 回复该主题

很用心的写了9道MySQL面试题 [复制链接]

1#
老牌白癜风医院         http://m.39.net/pf/a_5777853.html

MySQL一直是本人很薄弱的部分,后面会多输出MySQL的文章贡献给大家,毕竟MySQL涉及到数据存储、锁、磁盘寻道、分页等操作系统概念,而且互联网对MySQL的注重程度是不言而喻的,后面要加紧对MySQL的研究。写的如果不好,还请大家见谅。

非关系型数据库和关系型数据库区别,优势比较

非关系型数据库(感觉翻译不是很准确)称为NoSQL,也就是NotOnlySQL,不仅仅是SQL。非关系型数据库不需要写一些复杂的SQL语句,其内部存储方式是以key-value的形式存在可以把它想象成电话本的形式,每个人名(key)对应电话(value)。常见的非关系型数据库主要有Hbase、Redis、MongoDB等。非关系型数据库不需要经过SQL的重重解析,所以性能很高;非关系型数据库的可扩展性比较强,数据之间没有耦合性,遇见需要新加字段的需求,就直接增加一个key-value键值对即可。

关系型数据库以表格的形式存在,以行和列的形式存取数据,关系型数据库这一系列的行和列被称为表,无数张表组成了数据库,常见的关系型数据库有Oracle、DB2、MicrosoftSQLServer、MySQL等。关系型数据库能够支持复杂的SQL查询,能够体现出数据之间、表之间的关联关系;关系型数据库也支持事务,便于提交或者回滚。

它们之间的劣势都是基于对方的优势来满足的。

MySQL事务四大特性

一说到MySQL事务,你肯定能想起来四大特性:原子性、一致性、隔离性、持久性,下面再对这事务的四大特性做一个描述原子性(Atomicity):原子性指的就是MySQL中的包含事务的操作要么全部成功、要么全部失败回滚,因此事务的操作如果成功就必须要全部应用到数据库,如果操作失败则不能对数据库有任何影响。这里涉及到一个概念,什么是MySQL中的事务?事务是一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务。在MySQL中,事务是在引擎层实现的,只有使用innodb引擎的数据库或表才支持事务。一致性(Consistency):一致性指的是一个事务在执行前后其状态一致。比如A和B加起来的钱一共是元,那么不管A和B之间如何转账,转多少次,事务结束后两个用户的钱加起来还得是,这就是事务的一致性。持久性(Durability):持久性指的是一旦事务提交,那么发生的改变就是永久性的,即使数据库遇到特殊情况比如故障的时候也不会产生干扰。隔离性(Isolation):隔离性需要重点说一下,当多个事务同时进行时,就有可能出现脏读(dirtyread)、不可重复读(non-repeatableread)、幻读(phantomread)的情况,为了解决这些并发问题,提出了隔离性的概念。脏读:事务A读取了事务B更新后的数据,但是事务B没有提交,然后事务B执行回滚操作,那么事务A读到的数据就是脏数据。不可重复读:事务A进行多次读取操作,事务B在事务A多次读取的过程中执行更新操作并提交,提交后事务A读到的数据不一致。幻读:事务A将数据库中所有学生的成绩由A-B,此时事务B手动插入了一条成绩为A的记录,在事务A更改完毕后,发现还有一条记录没有修改,那么这种情况就叫做出现了幻读。

SQL的隔离级别有四种,它们分别是读未提交(readun

分享 转发
TOP
发新话题 回复该主题