常用MySQL数据库基础知识介绍

1.MySQL 体系结构: 

最上层的 JDBC 相当于一个抽象,针对不同的数据库,编写同样的数据库连接代码,可以连接不同的数据库,例如(MySQL/Oracle/Sybase等) 

连接池 

然后是在插件化的存储引擎之上的定义语言,解析器,优化器,缓存等. 

插件化的存储引擎 

文件系统 + 日志 

2.存储引擎: 

InnoDB: 支持事务,行锁设计、支持外键、默认读不会产生锁 
MyISAM: 不支持事务,表锁设计,支持全文索引,MyISAM 的缓冲池只缓存索引文件 
NDB: 数据全部放在内存中,用于集群 
Memory: 将表中的数据放在内存中,如果重启或崩溃,数据丢失,默认使用哈希索引,只支持表锁 
Archive:只支持 select 和 insert 操作 
Maria 存储引擎表是新开发的引擎,其设计目的主要是替代原来的 MyISAM 存储引擎. Maria 存储引擎的特点是:支持缓存数据和索引文件,应用了行锁设计,提供了 MVCC 功能,支持事务和非事务的安全选项,以及更好的 BOLB 字符类型的处理性能. 

连接 MySQL 本质上是进程间的通讯. 


索引: 

聚集索引:按照每张表的主键构造 B+ 树 
辅助索引:叶子节点不包含行记录的全部数据 
联合索引:对表的多个列进行索引 
覆盖索引:从辅助索引能查询到记录就不需要查询聚集索引中的记录 
哈希索引:只能用来搜索等值的查询 


事务的隔离级别: 

读未提交数据 
读已提交数据 
可重复读(MySQL 通过 MVCC 解决幻读) 
可串行化 

分布式事务: 

DB1,DB2,DB3 
Application 
TM 

这三种角色,分布式事务是两段提交,第一阶段DB1,DB2,DB3 告诉 TM 我准备好了,第二阶段 TM 告知 DB1,DB2,DB3 是 commit 还是 rollback. 一旦 DB1,DB2,DB3 中的其中一个说显示不能提交,则全部回滚. 

说明:数据库系统实现的其实是一个小型的操作系统,一样设计到页面的换入换出.

猜你喜欢

转载自blog.csdn.net/lyc00net/article/details/87472747