Mysql知识储备

来源:互联网 发布:bluestacks mac 编辑:程序博客网 时间:2024/05/18 16:16

Q:什么是事务处理?

A:使用事务处理,通过确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性。(参考《SQL必知必会》)


Q:什么是事务?

A:事务由一条或多条SQL语句组成,每个语句相互依赖,不可分割。如果一条SQL语句执行出错,整个事务会ROLLBACK,数据库回复到执行之前的状态。


Q:事务有哪些性质?

A:1.原子性(Atomicity)------------事务是不可分割的单元,事务中的操作要么都执行,要么都不执行;

      2.一致性(Consistency)------------一个事务执行前和执行后,数据库都处于一致性状态;

      3.隔离性(Isolation)-----------多个事务并发时,事务之间是隔离的,相互之间不会影响;

      4.持久性(Durability)-----------持久性意味着事务完成后,该事务对数据库所做的更改将持久保存下来,并不会回滚。


Q:说说Mysql中4中事务隔离级别?

A:1.未提交读(Read Uncommittied):最低的隔离级别

         所有事务都可以看到其他未提交事务的执行结果;

     2.提交后读(Read Committed):用户可以看到其他事务添加的新纪录,也就是说同一事务在不同时间的select操作得到的结果可能是不一样的;

     3. 可重读(Repeated Read):这是mysql默认的隔离级别,它确保同一事务的多个实例并发读取数据时,会看到相同的数据,会产生幻读,比如事务A无法读取到已经提交的事务B对数据库的更改;

     4.可串行化(Serializable):强制事务串行化,使之不发生冲突,最高级别的隔离,在事务A未提交前,事务B的更新无法写入数据库


Q:说说MyISAM 与 InnoDB的区别以及如何选择?

A:

MyISAM 不支持事务和外键,InnoDB支持,MyISAM强调的是性能;

当数据库需要大量的insert,update操作而select操作需求较小时,数据的完整性要求较高时选择InnoDB

当数据库主要以查询为主时,而update,insert操作相对少时,选择MyISAM,MyISAM的查询速率高于InnoDB


Q:什么是索引?

A:索引是用来排序数据以加快搜索和排序操作的速度。






1 0
原创粉丝点击