Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
郑师傅炒板栗
Python-100-Days
提交
9ff9250e
P
Python-100-Days
项目概览
郑师傅炒板栗
/
Python-100-Days
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Python-100-Days
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9ff9250e
编写于
3月 10, 2019
作者:
骆昊的技术专栏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新了数据库和电商项目文档
上级
340b91b6
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
135 addition
and
0 deletion
+135
-0
Day91-100/电商网站技术要点剖析.md
Day91-100/电商网站技术要点剖析.md
+0
-0
MySQL相关知识.md
MySQL相关知识.md
+135
-0
未找到文件。
Day91-100/电商网站技术要点剖析.md
浏览文件 @
9ff9250e
此差异已折叠。
点击以展开。
MySQL相关知识.md
0 → 100644
浏览文件 @
9ff9250e
## MySQL相关知识
### 存储引擎
1.
InnoDB
2.
MyISAM
### 数据类型
### 索引
#### 索引的类型
1.
B-Tree索引
2.
HASH索引
3.
R-Tree索引(空间索引)
4.
Full-text索引(全文索引)
### 视图
查询的快照,可以将访问权限控制到列上。
```
SQL
create view ... as select ...
drop view ...
```
### 存储过程
```
SQL
create procedure ... (params)
begin
...
end;
call ...
```
```
Python
cursor.callproc('...')
```
### 触发器
不能用,因为多个行锁可能直接升级为表锁,导致性能低下。
### 事务控制
### SQL注入攻击
### 数据分区
### SQL优化
#### 优化步骤
1.
通过
`show status`
了解各种SQL的执行频率。
```
SQL
show status like 'com_%';
show status like 'innodb_%';
show status like 'connections';
show status like 'slow_queries';
```
2.
定位低效率的SQL语句 - 慢查询日志。
```
SQL
show processlist
```
3.
通过
`explain`
了解SQL的执行计划。
-
select_type:查询类型(simple、primary、union、subquery)
-
table:输出结果集的表
-
type:访问类型(ALL、index、range、ref、eq_ref、const、NULL)
-
possible_keys:查询时可能用到的索引
-
key:实际使用的索引
-
key_len:索引字段的长度
-
rows:扫描的行数
-
extra:额外信息
4.
通过
`show profiles`
和
`show profile for query`
分析SQL。
#### SQL优化
1.
优化insert语句
2.
优化order by语句
3.
优化group by语句
4.
优化嵌套查询
5.
优化or条件
6.
优化分页查询
7.
使用SQL提示
-
USE INDEX
-
IGNORE INDEX
-
FORCE INDEX
#### 配置优化
1.
调整max_connections
2.
调整back_log
3.
调整table_open_cache
4.
调整thread_cache_size
5.
调整innodb_lock_wait_timeout
#### 架构优化
1.
通过拆分提高表的访问效率
-
垂直拆分
-
水平拆分
2.
逆范式理论
-
数据表设计的规范程度称之为范式(Normal Form)
-
1NF:列不能再拆分
-
2NF:所有的属性都依赖于主键
-
3NF:所有的属性都直接依赖于主键(消除传递依赖)
-
BCNF:消除非平凡多值依赖
3.
使用中间表提高统计查询速度
### 数据备份
#### 导入和导出
1.
select ... into outfile ...
2.
load data infile ... into table ...
3.
mysqldump
4.
mysqlimport
#### ibbackup工具
#### xtrabackup工具
### 主从复制
### 集群
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录