https://baike.baidu.com/item/mySQL/471251?fr=aladdinmysql
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。linux
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不一样的表中,而不是将全部数据放在一个大仓库内,这样就增长了速度并提升了灵活性。算法
MySQL所使用的 SQL 语言是用于访问数据库的最经常使用标准化语言。MySQL 软件采用了双受权政策,分为社区版和商业版,因为其体积小、速度快、整体拥有成本低,尤为是开放源码这一特色,通常中小型网站的开发都选择 MySQL 做为网站数据库。sql
因为其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。数据库
mysql内核、sql优化工程师、mysql服务器的优化、查询语句优化、主重复制、软硬件升级、容灾备份、sql编程 编程
mysql5.5下载地址:https://dev.mysql.com/downloads/mysql/ 检查当前系统是否安装过mysqlwindows
能够用 rpm -qa|grep mysql看当前的系统进程,若是有mysql服务的就会显示的。缓存
安装mysql服务端(注意提示) 安装mysql客户端 查看Mysql安装时建立的mysql用户和mysql组安全
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql
mysql服务的启+停:service mysql start服务器
mysql服务启动后开始链接 首次链接成功 注意这里,,由于mysql默认没有密码,因此这里咱们没有输入密码就直接连上了 按照安装Service中的提示修改登陆密码:/usr/bin/mysqladmin -u root password root 自启动mysql服务
chkconfig --list | grep mysql chkconfig mysql on ntsysv 查看自启动的服务
修改配置文件位置
5.5 版本 /usr/share/mysql/my-huge.cnf cp my-huge.cnf /etc/my.cnf 5.6之后 /usr/share/mysql/my-default.cnf
修改字符集和数据存储路径
1.查看字符集 show variables like 'character%'; 建议先对文件进行备份,不过由于文件原本就是从/usr/share/mysql中复制过来的,也能够不用备份,而后打开 cp my.cnf my.cnf.bak sudo vi my.cnf 在[mysqld]上面加入下面两句话 [client] default-character-set=utf8 在[mysqld]最下面加入下面几句话 character_set_server=utf8 character_set_client=utf8 collation-server=utf8_general_ci 若是一张表在修改字符集以前就建立,那么修改字符集以后对该表不起做用,只对后来建立的表起做用
Mysql的安装位置 在linux下查看安装目录 ps -ef | grep mysql
/var/lib/mysql mysql数据库文件的存放位置
/var/lib/mysqlatguigu.clouf.pif /usr/share/mysql 配置文件目录 mysql.serve命令以及配置文件 /usr/bin 相关命令目录
mysqladmin mysqldump 等命令 /etc/init.d/mysql 启停相关脚本
Mysql逻辑架构介绍
2.服务层:第二层架构主要完成大多数的核心服务功能。如SQL接口,并完成缓存的查询。SQL的分析和优化以及部份内置函数的执行。全部跨存储引擎的功能也在这层实现。如过程、函数等、在该层,服务器会解析查询并建立相应的内部解析树,并对其完成相应的优化如肯定查询表的顺序,是否利用索引等。最后生成相应的执行操做。若是是select语句。服务器会查询内部的缓存。若是缓存空间足够大,这样在解决大量读操做的环境中可以很好的提升系统的性能。
3.引擎层:存储引擎层,存储引擎真正的负责mysq中数据的存储和提取。服务器经过API与存储引擎进行通讯。不一样的存储引擎具备的功能不一样。这样咱们能够根据本身的实际须要进行选取。经常使用的有Innodb、MyIsam等
4.存储层:数据存储层,主要将数据存储在运行于裸设备的文件系统上,并完成与存储引擎的交互。
1.Connectors 指的是不一样语言中与SQL的交互
2. Management Serveices & Utilities: 系统管理和控制工具
3 .Connection Pool: 链接池 管理缓冲用户链接,线程处理等须要缓存的需求。 负责监听对 MySQL Server 的各类请求,接收链接请求,转发全部链接请求到线程管理模块。每个链接上 MySQL Server 的客户端请求都会被分配 (或建立)一个链接线程为其单独服务。而链接线程的主要工做就是负责 MySQL Server 与客户端的通讯, 接受客户端的命令请求,传递 Server 端的结果信息等。线程管理模块则负责管理维护这些链接线程。包括线程的建立,线程的 cache 等。
4 SQL Interface: SQL接口。 接受用户的SQL命令,而且返回用户须要查询的结果。好比select from就是调用SQL Interface
5 Parser: 解析器。 SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。 在 MySQL中咱们习惯将全部 Client 端发送给Server 端的命令都称为 query ,在 MySQL Server 里面,链接线程接收到客户端的一个 Query 后, 会直接将该 query 传递给专门负责将各类 Query 进行分类而后转发给各个
对应的处理模块。
主要功能:
a . 将SQL语句进行语义和语法的分析,分解成数据结构,而后按照不一样的操做类型进行分类,而后作出针对性的转发到后续步骤,之后SQL语句的传递和处理就是基于这个结构的。
b. 若是在分解构成中遇到错误,那么就说明这个sql语句是不合理的
6 Optimizer: 查询优化器。 SQL语句在查询以前会使用查询优化器对查询进行优化。就是优化客户端请求的 query(sql语句) ,根据客户端请求的 query 语句,和数据库中的一些统计信息,在一系列算法的基础上进行分析,得出一个最优的策略,告诉后面的程序如何取得这个 query 语句的结果 他使用的是“选取-投影-联接”策略进行查询。 用一个
例子就能够理解: select uid,name from user where gender = 1; 这个select 查询先根据where 语句进行选取,而不是先将表所有查询出来之后再进行gender过滤 这个select查询先根据uid和name进行属性投影,而不是将属性所有取出之后再进行过滤 将这两个查询条件联接起来生成最终查询结果
7 Cache和Buffer: 查询缓存。 他的主要功能是将客户端提交 给MySQL 的 Select 类 query 请求的返回结果集 cache 到内存中,与该 query 的一个 hash 值 作一个对应。该 Query所取数据的基表发生任何数据的变化以后, MySQL 会自动使该 query 的Cache 失效。在读写比例很是高的应用系统中, Query Cache 对性能的提升是很是显著的。固然它对内存
的消耗也是很是大的。 若是查询缓存有命中的查询结果,查询语句就能够直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。好比表缓存,记录缓存,key缓存,权限缓存等
8 、存储引擎接口 存储引擎接口模块能够说是 MySQL 数据库中最有特点的一点了。目前各类数据库产品中,基本上只有 MySQL 能够实现其底层数据存储引擎的插件式管理。这个模块实际上只是 一个抽象类,但正是由于它成功地将各类数据处理高度抽象化,才成就了今天 MySQL 可插拔存储引擎的特点。 从图2还能够看出,MySQL区别于其余数据库的最重
要的特色就是其插件式的表存储引擎。MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持,这些标准与存储引擎自己无关,多是每一个数据库系统自己都必需的,如SQL分析器和优化器等,而存储引擎是底层物理结构的实现,每一个存储引擎开发者均可以按照本身的意愿来进行开发。
注意:存储引擎是基于表的,而不是数据库。
查询说明 Mysql存储引擎
#查看命令 show engines; 查看引擎 show variables like '%storage_engine%';#查看默认与当前的存储引擎
MyISAM和InnoDB
对比项 | MyISAM | InnoDB |
主外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表锁,即便操做一条记录也会锁住整个表,不适合高并发的 |
行锁,操做时候只锁住某一行,不对其余行有影响 适合高并发的操做操做 |
缓存 | 只缓存索引,不缓存真实数据 | 不只缓存索引还要缓存真实数据,对内存要求.比较高,并且内存大小对性能有决定性的影响 |
表空间 | 小 | 大 |
关注点 | 性能 | 事务 |
默认安装 | 安装 | 安装 |