MySQL核心原理4

性能优化

1.硬件选择

CPU:OLTP 高可用小事务查询、OLAP分析系统仓库

RAM:越大越好

快磁盘存储:SSD、阵列

优网络、系统:关DNS、mysql

接入区DMG内网core:DNS、mysql

文件句柄打开数量即开辟io通道可命令:ulimit -n查看    1024

2. 缓存

Redis、memcrched 内存中,减少mysql压力

缓存穿透:布隆过滤器bloom filter

缓存雪崩:主从机制加高可用方案、高并发限流降级、数据预热

主[从]复制:用户、授权、开日志

                 master->binary log二进制日志<-io thread->[relay log<->sql thread]

                 master_log_pos=0  从哪里开始、replicate_do_db 过滤

                  级联主从解决不同步

3.分库分表 mycat

分库:系统复杂度上升,联合查询、数据聚合

分表:水平拆分,2000万以下数据可用索引,再多查询时间指数型增加,系统复杂度上升,拆分规则(取余分表、一次hash)

4.mysql配置作用域 热加载Dynamic

全局参数、会话参数

找配置文件、覆盖的

sort_buffer_size/join_buffer_size                  缓存池256~2M

innodb_buffer_pool_size                               物理机80~90%给它

innodb_buffer_read/write_io_thread             cpu核数2倍

innodb_print_all_deadlocks=1                      死锁日志

innodb_log_file(buffer)_size                          默认48M

innodb_flush_log_at_trx_commit=1

刷盘   buffer    oscache(0:mysql进程级别,1:v,2:操作系统级别)       logfile

刷脏数   innodb_io_capacity  默认zoom

库表设计:1NF 多列        2NF 多关联           3NF   外键

5.慢查询定位:业务驱动、测试驱动、慢查询日志

Time

user@Host

query_time        lock_time           Row_sent

Rows_examined

set  timestamp

select

mysqldumpslow  --help

-s   order  排序、-t   Num  前几名

慢查询排查:执行计划看type、rows、filtered、extra、key、key_len

show profile 分析sql调优,会话级别属性先打开

6.sql优化

     1. 基于索引完成扫描(sql结果集)

     2.索引不用函数或运算

     3.where  like    %放右边

     4.索引扫描,联合索引左->右越多越好

     5.索引排序

     6.有效列

     7.join  小结果驱动大的

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值