作者:Joy Lee

慢SQL排查方法  

慢 SQL 的一般排查步骤为: 1.定位慢 SQL; 2.定位性能损耗节点; 3.定位性能损耗原因并处理。 说明:排查过程中,建议通过 MySQL 命令行进行连接:mysql -hIP -PPORT -uUSER -pPASSWORD -c 。请务必加上 “-c”,防止 MySQL 客户端过滤掉注释(默认)从而影响 HINT 的执行。 定位慢 SQL 定位慢 SQL 一般有两种场景……

创建分表

通过分区字段(shardkey)把一个大表水平拆分到多个数据库,下面给大家介绍下分表的方法: 如何选择分区字段 一旦定好分区字段,就不能轻易修改分区字段,因此开发人员需要提前评估。选择分区字段的时候主要考虑两个维度: 通过该字段能否对数据进行均衡的存储和访问 多个相关联的表能否使用同一个字段。(相同分区字段……

SQL 优化方法(二)

Mysql 数据库作为数据持久化的存储系统,在实际业务中应用广泛。在应用也经常会因为 SQL 遇到各种各样的瓶颈。最常用的 Mysql 引擎是 innodb,索引类型是 B-Tree 索引,增删改查等操作最经常遇到的问题是“查”,查询又以索引为重点。 接下来的内容,安排如下: 介绍索引的工作原理 引用实例具体介绍索引 如何使用 explain……

SQL 优化方法

SQL 优化的基本原则 在MySQL 执行的 SQL 计算称为可下推计算。可下推计算能够减少数据传输,减少网络层的开销,提升 SQL 语句的执行效率。 因此,SQL 语句优化的基本原则为:尽量让更多的计算可下推到 MySQL 上执行。 可下推计算主要包括: JOIN 连接; 过滤条件,如 WHERE 或 HAVING 中的条件; 聚合计算,如 COUNT,G……

MySQL 索引及查询优化总结

一个简单的对比测试 前面的案例中,c2c_zwdb.t_file_count表只有一个自增id,FFileName字段未加索引的sql执行情况如下: 在上图中,type=all,key=null,rows=33777。该sql未使用索引,是一个效率非常低的全表扫描。如果加上联合查询和其他一些约束条件,数据库会疯狂的消耗内存,并且会影响前端程序的执行。 这时给FFi……

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节。另外MyISAM数据和索引是分开,而InnoDB的数据存储是按聚簇(cluster)索引有序排列的,主键是默认的聚簇(cluster)索引,因此MyISA……

MYSQL 实例CPU超过100%的分析

关于云数据库实例cpu 超过100%,通常这种情况都是由于sql 性能问题导致的,下面我用一则案例来分析: 用户实例xxx反馈cpu 超过100%,实例偶尔出现卡住的现象 1.原理:cpu 消耗过大通常情况下都是有慢sql 造成的,这里的慢sql 包括全表扫描,扫描数据量过大,内存排序,磁盘排序,锁争用等待等; 2.表现现象:sql 执行状态……

MySQL实际内存分配情况介绍

内存是重要的性能参数,常常出现由于异常的sql请求以及待优化的数据库导致内存利用率升高,更有甚者由于OOM导致实例发生HA切换。 MySQL的内存大体可以分为两部分:共享内存和session私有内存,下面详细介绍下各部分的构成。 1. 共享内存 以下为240M内存规格RDS实例的共享内存分配示意: mysql>show variables where va……

MySQL 慢日志 介绍

什么是慢日志? MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,MySQL数据库并不启动慢查询日志,需要我们手动来设置这个参数,当……

MySQL 开发实践

1.MySQL读写性能是多少,有哪些性能相关的重要参数? 这里做了几个简单压测实验 机器:8核CPU,8G内存 表结构(尽量模拟业务):12个字段(1个bigint(20)为自增primary key,5个int(11),5个varchar(512),1个timestamp),InnoDB存储引擎。 实验1(写):insert => 6000/s 前提:连接数100,每次insert单条记录 分析:CPU跑……