专项学习MySQL高级(1)

2021.3.10 天气:阴晴

Mysql

mysql是一个关系型数据库管理系统,完整的mysql优化需要很深的功底,大公司甚至有专门的DBA写优化

mysql一般布局在linux系统上
**【chkconfig mysql on】**设置开机自动启动
**【chkconfig -list|grep mysql】**检查各个系统等级下的启动情况
**【ntsysv】**查看开机自启的服务有哪些,自启的服务前面[*]会有星号

在这里插入图片描述

一、修改字符集

【create table user(id int not null,name varchar(20));】
创建一个user表,包含字段id,name,id的类型为int,限制为not null(不允许为空)
在这里插入图片描述
【show tables;】
显示现有的表
在这里插入图片描述
【insert into user values(1,‘z3’);】
插入一条数据
在这里插入图片描述
当插入一个中文字符后,这个显示会变成??无法识别
在这里插入图片描述
【show variables like ‘%char%’;】显示数据库字符集
在这里插入图片描述
编辑配置文件:
【client】
default-character-set=utf8
【mysql】
port =3306
character_set_server=utf8
character_set_client=utf8
collation_server=utf8_general_ci
[mysql]
no_auto_rehash
default_character_set=utf8

注意:
1.编辑完之后要重启mysql服务器

2.并且需要重新建表

二、MYSQL逻辑架构

1.连接层
2.服务层
3.引擎层
4.存储层

三、存储引擎

【show engines;】
查看引擎,默认使用的引擎是InnoDB

两大常用引擎对比:
在这里插入图片描述

四、性能下降的原因

比如.执行时间长,等待时间长:
1.sql语句写的效率低
2.索引失效
3.关联查询太多(设计需求缺陷)
4.服务器调优以及参数设置(缓冲线程数)

【create index idx_user_name on suer(name)】
建立 索引 索引名(idx_表名_列) 表名(列名)

五、SQL执行加载顺序

手写:
在这里插入图片描述
机读:
在这里插入图片描述
解析流程图:
在这里插入图片描述

六、JION

1.左连接
在这里插入图片描述
2.内连接
在这里插入图片描述
3.右连接
在这里插入图片描述
4.左独有
在这里插入图片描述
5.右独有
在这里插入图片描述
6.全连接
在这里插入图片描述

SELECT<select_list>
FROM TableA A
FULL OUTER JOIN TableB B
ON A.Ket = B.Key
SELECT<select_list>
FROM TableA A
LEFT JOIN TableB B
ON A.Ket = B.Key
union
SELECT<select_list>
FROM TableA A
RIGHT JOIN TableB B
ON A.Ket = B.Key

7.去交集
在这里插入图片描述

SELECT<select_list>
FROM TableA A
FULL OUTER JOIN TableB B
ON A.Ket = B.Key
WHERE A.Key IS NULL
OR B.Key IS NULL
SELECT<select_list>
FROM TableA A
LEFT JOIN TableB B
ON A.Ket = B.Key
WHERE B.Key IS NULL
union
SELECT<select_list>
FROM TableA A
RIGHT JOIN TableB B
ON A.Ket = B.Key
WHERE A.Key IS NULL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值