zoukankan      html  css  js  c++  java
  • MY SQL 知识

    LINUX配置优化

    • 诊断命令
    • 硬件优化
      • raid 10
      • ssd
      • Fusion-io
      • 大内存
      • 电池后备SCSI磁盘缓存
    • 系统优化
      • 日志,数据分盘
      • IO调度算法 deadline适用于磁盘 noop适用于ssd
      • XFS文件系统
      • 避免使用swap 分区
      • fd限制 ulimit

    MySQL参数配置

    • 基础配置
      • 字符集
      • 数据目录,日志目录,临时目录
      • sql_mode
    • 缓存设置
      • 线程缓存
      • 表缓存
      • 排序缓存
      • join缓存
      • 查询缓存
      • binlog缓存
      • ......
    • 阈值设置
      • max connection
      • timeout
      • slow query time
      • ......
    • innodb 设置
      • instances
      • size
      • io_capacity
      • innodb_flush_method=O_DIRECT 数据直接写盘,避过OS cache 日志还是OS flush
      • 双一设置
      • ......

    MySQL开发规范

    • DDL
      • 类型使用要精确
      • not null
      • 避免text/blob
      • 避免外键
      • 自增主键
      • 避免冗余索引
      • 索引数量控制
      • 索引字段过滤度
    • DML
      • 避免使用触发器,存储过程
      • 存储使用Mysql,不要有运算逻辑
      • 更新操作禁用limit
      • select * 禁用
      • in 优先 or
      • 同表alter操作合并

    BIG SQL

    • 索引优化
      • WHERE 条件索引使用率,符合最左原则
      • 联合索引,注意索引过滤度
      • 表join操作,注意加索引,且join字段类型必须一致
    • SQL优化
      • 子查询变成连接操作,优先使用独立子查询
      • 利用覆盖索引,分页操作
      • 拆分SQL,加缓存表或者汇总表
      • 外在条件下推,减少中间结果集
      • 重写SQL,利用过滤性更好的索引

    主从延迟

    • 避免
      • 避免3B
      • 较少从库压力,包括服务器和数据库本身的
      • 从库上有触发操作,控制更新量
    • 改善
      • 升级从库机器硬件ssd
      • 升级数据库版本,5.6的库并发 5.7的binlog线程并发
      • 第三方工具,丁奇的transfer插件
      • inset...select rbr模式,可以先select 缓存结果,后insert

    排查方法

    • 服务器
      • top
        • 查看负载
        • 查看CPU耗时
      • iostat
      • free
      • ps aux | grep pid
        • 查看具体进程信息
    • MySQL
      • SHOW FULL PROCESSLIST / dbaslowing
        • 数据库目前运行SQL,连接数
        • 慢查询实时采集,格式话输出
      • SHOW ENGINE INNODB STATUS
        • 运行事务信息
        • 死锁信息 / pt-deadlock-logger 周期采集死锁信息
        • buffer pool 信息查看
      • dbaprocess.sh
        • 查看连接数排序,显示连接服务

    紧急恢复

    • 切换
      • 主从切换
        • 双主模式,设置自增间隔,不停服
        • read_only 切换,保留静态老主
    • 连接数打满
      • pt-kill
      • mysqladmin kill

    日常指标

    • zabbix
      • 历史状态查询
      • 报警监控
      • 组合定制脚本监控
    • 运维脚本
      • 慢查询脚本每日邮件
      • 数据库周健康度邮件
      • 核心表每日备份
      • 扩容从库脚本
      • 搭建级联脚本
      • 测试库同步脚本
      • 试运行环境对比脚本
    • 备份
      • hotbak,dump
      • nfs挂载磁盘
      • hdfs数据冗余

    自动化运维

    • 自动审核inception
    • 自动授权系统

    MySQL HA

    • 中间件

      • dbproxy
        • 读写分离
        • 从库HA,负载均衡
      • mycat
        • 读写分离
        • 从库负载均衡
        • 分库分表&全局表
        • HA
        • 不支持分布式事务
        • 业务SQL限制,需要有路由key
        • 性能有所损耗
    • MHA

    • PXC

    常用PT

    • pt-config 数据库替换时,验证参数一致性
    • pt-deadlock-logger 记录历史死锁信息
    • pt-duplicate-key-checker 冗余索引检测
    • pt-ioprofile IO调试
    • pt-kill 定制kill连接线程
    • pt-online-schema-change OSC
    • pt-query-digest 状态输出慢查询
    • pt-table-checksum 主从一致性验证
    • pt-slave-find 主从拓扑结构
    • pt-fifo-split 大文件导入
  • 相关阅读:
    项目无法运行iPhone5模拟器
    多线程下载图片,滑动tableView崩溃--资源抢夺问题
    提醒事项 1. 冥想TX 2.下班路上听歌激励自己 3. 不戴眼镜 4. 困难任务拆解
    AutoLayout性能不如frame
    Tunnelblick 覆盖安装失败
    weakSelf 和 strongSelf
    动画
    4/16 近期状态
    知乎live 我的读书经验 总结
    C语言-第23课
  • 原文地址:https://www.cnblogs.com/zping/p/5457762.html
Copyright © 2011-2022 走看看