IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL大数据调优实战教程一 -> 正文阅读

[大数据]MySQL大数据调优实战教程一

五大阶段

MySQL大数据调优

1. MySQL底层设计调优

2. MySQL存储引擎选择与调优

3. MySQL索引与执行计划详解

4. 分库分表/主从/读写分离设计

5. MySQL服务器与硬件调优

MySQL性能的主要因素

1. 数据库结构设计

2. 数据库存储引擎

3. SQL语句的书写

4. 数据库参数配置

5. 服务操作系统与硬件

数据库设计三范式

第一范式

1. 数据库所有字段都只有单一属性

2. 单一属性是由基本数据类型构成的

3. 数据库的表都是二维的(行与列)

?

?

第二范式

1. 要求符合第一范式

2. 表必须有一个主键(一列或多列)

3. 其他字段可由主键确定

4. 二范式目的是通过拆表减少数据冗余

?

第三范式

1. 要求符合第二范式

2. 字段要求直接依赖于主键,不允许间接依赖

3. 第三范式目的在于拆分实体(完善主从表)

?

实战:反范式(上千张表,程序运行慢,SQL太复杂,关联表太多,利用反范式,简化SQL书写。根据数据的复杂度和关联表的多少来决定使用第三范式还是反范式)

反范式设计

?

?

?

?

反范式设计的优缺点

优点

1. 单表查询易于优化,易于管理

2. SQL语句简单,有利于程序开发,团队协作

缺点

1. 存在数据冗余,写操作时需要额外更新从表数据

2. 不合理的反范式设计会让表变得臃肿不堪

实体关系分析

1. 实体关系是指系统事务之间的联系

2. 实体关系需要双向分析

3. 实体关系决定表关系

实体关系的种类

1. 一对一

2. 一对多

3. 多对多

表关系设计原则

1. 一对一,通过主键关联

2. 一对多,在多的一方设置外键

3. 多对多,增加中间表,持有双方外键

?

自然主键与代理主键

1. 自然主键是指事务属性中的自然唯一标识

2. 代理主键是指与业务无关的,无意义的数字序列值

3. 在设计时,优先推进代理主键,不推进自然主键

?

数据类型的选择

字段类型优先级

1. 数字类型

2. 日期类型与二进制类型

3. 字符串类型

整数类型

?

实数类型

?

思考:代理主键使用INT还是BIGINT

VARCHAR类型

VARCHAR变体长度,根据实际内容保存数据

1. 使用最小的符合需求的长度

2. VARCHAR(255)以下使用额外一个字节保存长度

3. VARCHAR(255)以上使用额外两个字节保存长度

4. VARCHAR(5)与VARCHAR(200)内存占用不同

5. VARCHAR变更长度时会出现锁表(MySQL5.6之前,之后优化)

VARCHAR的使用场景

1. VARCHAR适合存储长度波动大的数据(如博客文章)

2. 字符串很少被更新的场景

3. VARCHAR适合保存多字节字符

CHAR类型

CHAR属于定长数据

1. CHAR最大长度255

2. CHAR类型会自动删除末尾的空格

3. CAHR检索效率比VARCHAR高

CHAR的使用场景

1. CHAR适合存储长度波动不大的数据,如MD5摘要

2. CHAR适合存储短字符串

3. CHAR类型适合存储经常更新的字符串

DATETIME日期类型

1. DATETIME日期时间类型,占用8个字节

1)与时区无关

2)可保存到毫秒

3)可保存时间范围大

2. PS:不要使用字符串存储日期类型

TIMESTAMP时间戳

TIMESTAMP时间戳,占用4个字节

1)时间范围:1970-01-01到2038-01-19

2)精确到秒

3)采用整型存储

4)依赖于时区

5)自动更新timestamp列的值

MySQL体系结构

?

存储引擎只针对表,数据库中允许出现不同引擎

1)InnoDB

2)MyISAM

3)XtraDB

4)CSV

5)Memory

6)Archive

7)Federated

参考个人博客

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:59:31  更:2022-09-30 01:00:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 -2025/5/9 7:04:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码