分库,分表,分库分表的应用场景

分库,分表,以及分库分表的应用场景是截然不同的,他不是一件事,而是三件事,根据下面实际情况,而进行优化操纵:
1.只分库不分表:当数据库的读写qps过高(QPS(每秒Query量) :show global status like 'Question%'; ),导致数据库链接不足,这个时候就要考虑做分库了,通过增加数据库实例的方式,来提供更多的可用数据库链接,从而提升系统的并发度。
2.只分表不分库:因为数据库链接不高,但是数据库的查询和读写遇见了瓶颈,所以考虑采用水平分表(一般按照时间维度分表)。通过分散查询单表的查询量,来提高查询查询速度。
3.分表分库:数据库链接不够,单表查询速度比较慢,则考虑分库分表。

附带mysql状态查看 QPS/TPS/缓存命中率查看

对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态。

(1)QPS(每秒Query量)

QPS = Questions(or Queries) / seconds

mysql > show  global  status like 'Question%'; 

(2)TPS(每秒事务量)

TPS = (Com_commit + Com_rollback) / seconds

mysql > show global status like 'Com_commit'; 
mysql > show global status like 'Com_rollback'; 

(3)key Buffer 命中率

mysql>show  global   status  like   'key%'; 

key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%

key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%

(4)InnoDB Buffer命中率

mysql> show status like 'innodb_buffer_pool_read%'; 

innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%

(5)Query Cache命中率

mysql> show status like 'Qcache%'; 

Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;

(6)Table Cache状态量

mysql> show global  status like 'open%'; 

比较 open_tables 与 opend_tables 值

(7)Thread Cache 命中率

mysql> show global status like 'Thread%'; 
mysql> show global status like 'Connections'; 

Thread_cache_hits = (1 - Threads_created / connections ) * 100%

(8)锁定状态

mysql> show global  status like '%lock%'; 

Table_locks_waited/Table_locks_immediate=0.3% 如果这个比值比较大的话,说明表锁造成的阻塞比较严重

Innodb_row_lock_waits innodb行锁,太大可能是间隙锁造成的

(9)复制延时量

mysql > show slave status 

查看延时时间

(10) Tmp Table 状况(临时表状况)

mysql > show status like 'Create_tmp%'; 

Created_tmp_disk_tables/Created_tmp_tables比值最好不要超过10%,如果Created_tmp_tables值比较大,

可能是排序句子过多或者是连接句子不够优化

(11) Binlog Cache 使用状况

mysql > show status like 'Binlog_cache%'; 

如果Binlog_cache_disk_use值不为0 ,可能需要调大 binlog_cache_size大小

(12) Innodb_log_waits 量

mysql > show status like 'innodb_log_waits'; 

Innodb_log_waits值不等于0的话,表明 innodb log buffer 因为空间不足而等待

比如命令:

#show global status;

虽然可以使用:

#show global status like %…%;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值