1.1定义数据库和实例
- 数据库:物理操作系统文件或其他形式文件类型的集合。在Mysql中,数据库文件可以使frm、myd、myi、ibd结尾的文件。当使用NDB存储引擎时,数据库的文件可能不是操作系统的文件,而是存放于内存之中的文件,但是定义仍然不变。
- 数据库实例:由数据库后台进程/线程以及一个共享内存区组成。共享内存可以被运行的后台进程/线程共享。需要牢记的是,数据库实例才是整整用来操作数据库文件的。
mysql启动实例时,Mysql数据库会去读取配置文件my.cnf根据配置文件的参数来启动数据库实例。
1.2Mysql体系结构、
Msqy由一下几部分组成:
-连接池组件
-管理服务和工具组件
-sql接口组件
-查询分析器组件
-优化器组件
-缓冲(cache)组件
-插件式存储引擎
-物理文件
1.3Mysql表存储引擎
InnoDB存储引擎支持失误,主要面向在线失误处理(OLTP)方面的应用。其特点是行锁设计、支持外键,并支持类似Oracle的非锁定读,即默认情况下读取操作不会产生锁。
对于表中数据的存储,InnoDB存储引擎采用了聚集(clustered)的方式,每张表的存储都按主键的顺序存放,如果没有显示地在表定义时制定主键,Innodb存储引擎会为每一行生成一个6字节的ROWID,并以此作为主键。
MyISAM存储引擎特点是不支持事务、表锁和全文索引。MyISAM存储引擎表由MYD和MYI组成,MYD用来存放数据文件,MYI用来存放索引文件。
对于MyISAM存储引擎表,Mysql数据库只缓存其索引文件,数据文件的缓存交由操作系统本身来完成。
Memory存储引擎,将表中的数据存放在内存中,如果数据库重启或发生崩溃,表中的数据都将消失。类似于内存数据库。
Mysql5.6之后InnoDB也已经支持全文索引。
1.4各种存储引擎之间的比较
通过show engines
命令可查看当前数据库支持的所有引擎。
主要找到MyISAM不支持事务,InnoDB支持事务就可以了。
1.5连接Mysql
select host, user, password from user
可以查用所有的用户权限信息。
如果客户端和Mysql服务端连接不在同一台机器上,那么使用socket连接。如果在同一台机器上,那么在windows下可使用命名管道和共享内存,在linux环境下可使用unix域套接字。