美文网首页
mysql MySQL安装&执行过程

mysql MySQL安装&执行过程

作者: dylan丶QAQ | 来源:发表于2020-10-25 10:11 被阅读0次

起因:在工作中常常要用到mysql,平常只是对数据库crud,并没有认真的了解过她,sql语句也只是会一些最基本的,和常用的,一些不常用的都要去网上百度,即决定学习一下mysql,来了解她,虽然开发很多都是黑盒,但追本溯源总是我们想要的。


1.Linux MySQL v5.6版本安装

1.1 查询系统中已有的MySQL
rpm -qa|grep mysql
1.2 如果有卸载MySQL并删除相关文件(这里是基于默认安装的)
yum remove -y mysql mysql-libs mysql-common
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
1.3 安装v5.6 MySQL
wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
yum install -y mysql-community-server
1.4 配置MySQL
vim /etc/my.cnf
1.5 启动MySQL
service mysqld start
1.6 设置root密码
/usr/bin/mysqladmin -u root password '123456'

2.数据库应用

  • 不同的业务系统一定要独立授权用户

where条件解析顺序

  • MySQL是从左向右执行where条件(查询优化器会去优化where条件,但效果不一定)
  • Oracle是从右向左执行where条件

3.SQL执行顺序

  • FROM

  • ON

  • JOIN

  • WHERE

  • GROUP BY

  • HAVING

  • SELECT columns

  • DISTINCT

  • ORDER BY

  • LIMIT

4. 全文索引

  • 只有在MyISAM引擎上才能使用
  • CHAR、VARCHAR、TEXT字段才能使用

5. SQL的执行过程

客户端

连接器:管理连接、做权限验证 username、password

查询缓存:key-value 如果有就直接返回,全SQL匹配

  • preparestatement:args string
  • statement:string
  • 如果数据表发生结构变化及数据内容变化,MySQL会立即清空对应表缓存
  • MySQL 8.0 直接删除了,彻底没了
  • 会在结构返回前做一次权限验证

分析器

  • 词法分析:错别字
  • 语法分析:语法结构
  • Preparestatement、#{}

优化器:执行计划生产,索引选择

执行器:操作引擎

  • 如果你对这个表没有权限,就会返回错误 grant
  • 从数据引擎里取数据

6. MySQL

  • MyISAM:查询和插入的高速引擎,但不支持事务
  • InnoDB:v5.5 支持事务支持行锁
  • ISAM:5.0以后就不装了
  • Memory:内存引擎,速度快,但掉电丢失数据
  • Falcon:InnoDB的替代方向
  • Archive:归档引擎,只支持写入和查询,适合大数据量,将数据压缩后存储
  • CSV
show engines;
show table status like '%user_role%' \G;

7. MySQL存储的物理结构

  • MySQL是通过文件系统对数据和索引进行存储的
  • MySQL从物理结构上可以分为日志文件和数据索引文件
  • MySQL在linux下默认安装文件路径 /var/lib/mysql

8. 日志文件

MySQL通过日志记录数据库的操作和错误信息,常用到的日志:错误日志、查询日志、慢查询日志、二进制日志Binlog

show variables like '%log%';

9. 错误日志

默认是开启的

log_error=/var/log/mysqld.log
log_warnings=1

log_warnings:是否开启警告信息一并写入错误日志 0|1

log_warnings>1 : 将失败的连接,拒绝访问相关信息也记录到错误日志中

10. 查询日志

  • 在mysql中被称为general log

  • 会记录所有操作,无论对错

  • 存放方式有三种

    • 日志 general_log_file /var/lib/mysql/MySQL.log
    • 将查询日志存入mysql.general_log表中
    • 同时存放
  • 三种方式的配置项

    • log_output FILE|TABLE|FILE,TABLE
general_log=ON
log_output=FILE

11. 慢查询日志

目录授权

chown -R mysql:mysql /usr/local/slowfile/

mysqldumpslow使用

  • -s排序规则,降序,-t 2显示结果前两行
  • c :执行次数
  • l : 锁定时间
  • r : 返回记录
  • t :执行时间
  • al、ar、at

percona-toolkit使用

可以直接对日志进行时间的区间查询

Binlog二进制日志

默认是关闭的,需要通过配置进行开启

log_bin=mysql-bin

Binlog日志深入分析及备份与恢复相关,请移步我的下一篇博客mysql备份与恢复


不要以为每天把功能完成了就行了,这种思想是要不得的,互勉~!

相关文章

网友评论

      本文标题:mysql MySQL安装&执行过程

      本文链接:https://www.haomeiwen.com/subject/drtryktx.html