随笔分类 - MySQL
摘要:当你在MySQL高并发情况下的进行性能调优时,需要知道调整后的影响。例如查询是否变快了?锁是否会减慢运行速度?内存使用情况如何?磁盘IO等待时间变了吗? . Performance Schema就有一个 存储回答上述问题所需数据的数据库 。本篇文章将帮你了解Performance Schema的工作
阅读全文
摘要:实例说明optimize table在优化mysql时很重要 张映 发表于 2011-03-07 分类目录: mysql 标签:mysql, optimize table, 优化 今天在看CU的时候,发现有人问有关optimize来表优化的问题,当年因为这个问题,困扰我很长一段时间,今天有空我把这个
阅读全文
摘要:直接复制执行 1、查询所有数据库占用磁盘空间大小 select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size, concat(truncate(sum(index_length)/102
阅读全文
摘要:故障描述 在7月24日11点线上某数据库突然收到大量告警,慢查询数超标,并且引发了连接数暴增,导致数据库响应缓慢,影响业务。看图表慢查询在高峰达到了每分钟14w次,在平时正常情况下慢查询数仅在两位数以下,如下图: 赶紧查看慢SQL记录,发现都是同一类语句导致的慢查询(隐私数据例如表名,我已经隐去):
阅读全文
摘要:ALTER TABLE table_name AUTO_INCREMENT= 1;
阅读全文
摘要:摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用My
阅读全文
摘要:行锁 innodb支持行锁,myisam只支持表锁,同一时刻每张表只能有一条数据被更新 在InnoDB事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放, 而是要等到事务结束时才释放。这个就是两阶段锁协议。 如果你的事务中需要锁多个行,要把最可能造成锁冲突、最可能影响并 发度的锁的申请时
阅读全文
摘要:count(*)实现原理 不同引擎的实现: MyISAM引擎把表的总行数存在了磁盘上,执行COUNT(*)就会直接返回,效率很高; InnoDB在count(*)时,需要把数据一行一行的从引擎里面取出来然后累计记数。 注意如果有where过滤条件MYISAM速度就不是很快了。 为什么Innodb不和
阅读全文
摘要:几个影响sql语句性能的例子 案例一:假设你现在维护了一个交易系统,其中交易记录表tradelog包含交易流水号(tradeid)、交易员id(operator)、交易时间(t_modified)等字段。为了便于描述,我们先忽略其他字段。这个表的建表语句如下: mysql> CREATE TABLE
阅读全文
摘要:幻读 场景例子(innodb的默认事物隔离级别是可重复读) CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c
阅读全文
摘要:最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需。 首先是几条常用的SQL。 1、按客户端 IP 分组,看哪个客户端的链接数最多 1 select client_ip,count(client_ip) as client
阅读全文
摘要:下面语句主要用于根据数据库字段进行按天、按月、按年分组统计时的查询,仅做个人收藏备用。 1、如果时间字段类型为date或datetime: //按周查询 SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM role GR
阅读全文
摘要:最近在看高性能MYSQL一书,所以对其进行例子分析已巩固自己的印象 数据库的事务操作其实就是一组原子性的操作,要么全部操作成功,要么全部操作失败。 比如说我需要对外销售1张电影票,且登记一下销售信息到另一个表,至少需要以下3个步骤 1.查询电影票数量是否满足销售1张电影票 SELECT remain
阅读全文
摘要:开窗函数:在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成。为了解决这些问题,在 2003 年 ISO SQL 标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决。目前在 MSSQLServer、Oracle、DB2 等主流
阅读全文
摘要:一、单表,多表查询优化: 多表查询索引优化: 左链接 索引建在右表 右链接 索引建在左表 JOIN 语句优化: 尽可能的减少Join语句中,NestedLoop的循环总次数:“永远用小结果集驱动大的结果集” 优先优化NestedLoop的内层循环。 保证Join语句中被驱动表中的Join条件字段已经
阅读全文
摘要:一、索引性能分析: 1、Mysql Query Optimize(mysql查询化分析器) MySQL中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(他认为最优的数据检索方式,但不见得是DBA认为的最优,这
阅读全文
摘要:1)什么是索引: 索引是帮助mysql高效获取数据的数据结构, 索引的本质就是数据结构。(可以理解为排好序快速查找的数据结构) 结论:数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。
阅读全文
摘要:一、sql执行顺序 从这个顺序中我们不难发现,所有的 查询语句都是从from开始执行的,在执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入。 第一步:首先对from子句中的前两个表执行一个笛卡尔乘积,此时生成虚拟表 vt1(选择相对小的表做基础表)。 第二步:
阅读全文
摘要:一、概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。 MySQL是一个关联数据库管理系统,将数据保存在不同的表中,而不是将所有的数据放在一个大的仓库内,这样增加了速度并提高了灵活性。 MySQL是开源的,所以不需要支付任何的费用。 MySQL支持
阅读全文
摘要:前言:以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表上,未涉及多表操作。 前提:在进行“增删改查”的操作之前,先建立一个包含数据表student的数据库(具体操作可以见MySQL之最基本命令): 1
阅读全文