| |
|
开发:
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 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |