01 先来看看MySQL(20)
1.1 什么是MySQL?怎么学习?
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
很多朋友不知道怎么一步一步的学习MySQL,下面就先给大家看看MySQL的一个学习路线大纲图:
MySQL学习路线大纲图.png
1.2 MySQL(20)高频必备题目与答案解析(先不要看答案哟~)
- (1)事务四大特性(ACID)原子性、一致性、隔离性、持久性?
答案解析:
原子性(Atomicity)
· 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
一致性(Consistency)
· 事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B却没收到。
隔离性(Isolation)
· 隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。
关于事务的隔离性数据库提供了多种隔离级别,稍后会介绍到。 持久性(Durability)
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
- (2)事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
- (3)MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
答案解析:
3.1 MySQL存储引擎MyISAM与InnoDB如何选择
MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是两个。
两种存储引擎的大致区别表现在:
· InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。
· MyISAM适合查询以及插入为主的应用。
· InnoDB适合频繁修改以及涉及到安全性较高的应用。
· InnoDB支持外键,MyISAM不支持。
· 从MySQL5.5.5以后,InnoDB是默认引擎。
· InnoDB不支持FULLTEXT类型的索引。
· InnoDB中不保存表的行数,如select count() from table时,InnoDB需要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count()语句包含where条件时MyISAM也需要扫描整个表。
· 对于自增长的字段,InnoDB中必须包含只有该