MySQL学习笔记
mysql架构介绍
mysql简介
- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
mysql安装
- linux对于任何用户,都会在home目录下创建一个文件夹。root用户独占一部分空间,其他所有用户占用一部分空间。
- 查看linux用户组的方式:
cat /etc/group|grep mysql
如果出现了mysql:x:133:
则说明安装成功。另外一种查看mysel是否安装成功的方式是:mysqladmin --version
,如果出现文字,则说明安装成功。 service mysql start
,启动mysql服务,这是其他进程调用mysql服务的基础。停止mysql服务,就是service mysql stop
- 设置mysql密码:
/usr/bin/mysqladmin -u root password 123456
- 自启动mysql服务
chkconfig mysql on
,使用chkconfig --list| grep mysql
会发现:mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
,正常方式就是2345。 - mysql安装位置:指mysql的数据库的数据库。
cd /var/lib/mysql
后,ls -l
可以看到mysql数据库结构。/usr/share/mysql
配置文件目录。/usr/bin
相关命令目录。/etc/init.d/mysql
启停相关脚本。 - 修改配置文件位置:
/usr/share/mysql
,通过修改字符集编码之后,可以在表中输入中文了。 - 数据文件:frm文件存放表结构,myd文件存放表数据,myi文件存放表索引
mysql逻辑架构
- 和其他数据库相比,MySQL有点与众不同,他的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上。
- 插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的架构。
- 连接层:最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。
- 服务层:第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化及部分内置函数的执行。
- 引擎层:存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。
- 存储层:数据存储层,主要是将数据存储在运行于裸设备的文件系统上,并完成与存储引擎的交互。
存储引擎简介
- 查看已提供的所有存储引擎:
show engines;
- 查看当前存储引擎:
show variables like '%storage_engine%';
- MyISAM和InnoDB对比:
对比项 | MyISAM | InnoDB |
---|---|---|
主外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表锁,即使操作一条记录也会锁住整个表,不适合高并发操作 | 行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作 |
缓存 | 只缓存索引,不缓存真实数据 | 不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响 |
表空间 | 小 | 大 |
关注点 | 性能 | 事务 |
默认安装 | 是 | 是 |