2019独角兽企业重金招聘Python工程师标准>>>
mysql在windows上目录结构:
data目录的文件类型:
*.opt:单个数据库的配置文件,内容示例:
default-character-set=latin1
default-collation=latin1_swedish_ci
*.ibd:数据表的数据和索引文件
*.frm:数据表结构描述
查询mysql读取配置文件的读取顺序,使用命令查询 : mysql --help
配置文件中datadir参数配置数据库数据的实际存放目录.
数据库和数据库实例?
数据库是存放在文件系统上的文件,数据库实例介于操作系统和文件系统之间的一个应用程序。
MySQL组成部分?
连接池组件
管理服务和工具组件
SQL接口组件
查询分析器组件
优化器组件
缓冲(Cache)组件
插件式存储引擎(基于表)
物理物件
存储引擎:
InnoDB:支持行锁,支持外键,主要应用场景OLTP(在线事务处理),
MyISAM: 支持全文索引,主要应用场景OLAP,它的缓冲池只缓存索引文件,MYD存放数据,MYI存放索引文件
NDB: 集群存储引擎,数据全部存放在内存中,速度快
Memory:原名(Heap),数据存放在内存中,非常适合用于存储临时数据的临时表,默认使用哈希索引,只支持表锁,并发性能较差,且不支持TEXT和BLOB列。如果超出Memory引擎承受范围,那么会自动转换到MyISAM引擎;
Archive:只支持insert,select操作,提供高速的插入和牙刷功能,非常适合数据归档和历史数据存放功能
Maria:MyISAM升级版,支持缓存数据和索引文件,带行锁,提供MVCC功能,支持事务和非事务安全的选项。
什么是MVCC?
大多数的MySQL事务型存储引擎,如InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制。事实上,他们都和另外一种用来增加并发性的被称为“多版本并发控制(MVCC)”的机制来一起使用。MVCC不只使用在MySQL中,Oracle、PostgreSQL,以及其他一些数据库系统也同样使用它。
MVCC过程如下,参考http://www.cnblogs.com/gaojian/p/3295951.html