mysql 高级第一天:
- 简介 — 了解
2. mysql 高手怎么练成!
3. mysql 安装 linux
第一种:源码解压!
第二种: yum 安装!
第三种: rpm 安装!
第四种:docker docker pull mysql docker run -it ...
依次执行:
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
启动服务:
systemctl start/stop/restart/status mysqld;
初始化:
mysqld --initialize --user=mysql
mysql 的核心配置文件
/etc/my.cnf;
/var/log/mysqld.log;
4. mysql 的字符集:
默认配置:latin1
改成utf8格式:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
5. mysql 的用户与权限:
a. create user zhang3 identified by '123123';
使用root 用户 创建用户同时赋予权限!
b. grant all privileges on *.* to joe@'%' identified by '123'; flush privileges;
c. REVOKE select,insert,update,delete ON *.* FROM joe@'%';
6. 利用远程工具访问mysql 数据!
grant all privileges on *.* to root@'%' identified by 'root';
7. 有关于mysql 的配置 sql_mode
修改sql_mode = 'ONLY_FULL_GROUP_BY';
mysql 5.7 的sql_mode = 有 ONLY_FULL_GROUP_BY 说明:在查询的时候,使用group by 要遵循一定的规则!
a. 查询项 必须是分组字段其中之一!
b. 查询项 可以有组函数的出现!
综上所述:
使用group by 进行分组的时候,查询项目,要么是组函数,要么是分组的字段!
改 :my.cnf 配置文件!
8. mysql 的逻辑架构
连接层:
服务层:
引擎层:
存储层:
开启查询缓存:
vim /etc/my.cnf;
query_cache_type=1
每一条sql 语句执行的时候:至少用到一个索引! 主键!
9. 数据结构:
线性结构:
顺序存储:
链式存储:
集合能够体现!
非线性结构:
多维数组:
时间复杂度:
最好hash!次之平衡树!
程序注重的时间复杂度!
10. 索引块!
底层应该使用树来存储!
B树:
即叶子节点和非叶子节点都存放数据。
面试题:
为啥使用的B+Tree?
数据都存储在叶子节点!
MySQL的InnoDB引擎的存储方式也是B+树机制。
11. 存储引擎:
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
12. 7种join!
重点:
1. mysql 安装!
2. 授权
3. 核心配置文件my.cnf
4. group by 的用法!
5. hash 效率最高 平衡树次之!
mysql innodb 默认存储引擎 采用的B+Tree!