• Mysql 详解(一)


    • Q: 为什么别人问你 MySQL 优化的知识 总是没有底气.
    • A: 因为你只是回答一些大而化之的调优原则,
    • 比如:”建立合理索引”(什么样的索引合理?) “
    • 分表分库”(用什么策略分表分库?)
    • “主从分离”(用什么中间件?)
    • 并没有从细化到定量的层面去分析.
    • 如 qps 提高了%N? 有没有减少文件排序?语句的扫描行数减少了多少?
    • 没有大量的数据供测试,一般在学习环境中,只是手工添加几百上万条数据, 数据量小,看不出语句之间的明确区别.
    • Q: 如何提高 MySQL 的性能?
    • A: 需要优化,则说明效率不够理想. 因此我们首先要做的,不是优化,而是--诊断. 治病的前提,是诊病,找出瓶颈所在. CPU,内存,IO? 峰值,单条语句?

    话不多说,步入正题!

    一. MySQL安装

    https://www.cnblogs.com/ayyl/p/5978418.html

    二.mysql 性能调优的思路

    0: 最好的优化不查

    如果一台服务器出现长时间负载过高 /周期性负载过大,或偶尔卡住如何来处理?

    大的思路-------- 是周期性的变化还是偶尔问题?

    是服务器整体性能的问题, 还是某单条语句的问题?

    具体到单条语句, 这条语句是在等待上花的时间,还是查询上花的时间. 唯一的办法-----监测并观察服务器的状态. 1:观察服务器状态, 一般用如下 2 个命令

    Show status; Show processlist;

    1:建表: 表结构的拆分,如核心字段都用 int,char,enum 等定长结构

    表的优化与列类型选择

    表的优化:

    1: 定长与变长分离

    text,blob, 如 id int, 占 4 个字节, char(4) 占 4 个字符长度,也是定长, time即每一单元值占的字节是固定的. 核心且常用字段,宜建成定长,放在一张 ### 表. 而 varchar, 这变长字段,适合单放一张表, 用主键与核心表关联起来.

    2:常用字段和不常用字段要分离. 需要结合网站具体的业务来分析,分析字段的查询场景,查询频度低的字段,单拆出来.

    3:合理添加冗余字段

    2:非核心字段,或用到 text,超长的 varchar,拆出来单放一张表. 建索引: 合理的索引可以减少内部临时表(索引优化策略里详解)

    3:写语句: 不合理的语句将导致大量数据传输以及内部临时表的使用.

  • 相关阅读:
    python标准库学习-SimpleHTTPServer
    迁移cnblog博客
    zabbix监控使用
    20 个 OpenSSH 最佳安全实践
    编写基本的 udev 规则
    Linux.Siggen.180
    在 CentOS 7.0 上安装配置 Ceph 存储
    常用 GDB 命令中文速览
    Kubernetes TLS认证
    音乐下载api
  • 原文地址:https://www.cnblogs.com/zhangzack/p/10066360.html
Copyright © 2020-2023  润新知