倾斜的镜子

记录,分享,积累,收获,和你一起

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  MySQL

1 2 下一页

摘要:为什么不要问我DB极限QPS/TPS 背景 相信很多开发都会有这个疑问,DB到底可以支撑多大的业务量,如何去评估?对于这个很专业的问题,DBA也没有办法直接告诉你,更多的都是靠经验提供一个看似靠谱的结果,这里主要说明数据库容量评估的难点。 定性分析 借用学校时候做物理题的一个思考方法 -- 极限法; 阅读全文
posted @ 2017-01-21 10:10 倾斜的镜子 阅读(22358) 评论(0) 推荐(0) 编辑

摘要:悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念。本文将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍。 悲观锁(Pessimistic Lock) 悲观锁的特点是先获取锁,再进行业务操作,即“悲观”的认为获取锁是非常有可能失败的,因此要先确保获取锁成功再进 阅读全文
posted @ 2016-12-19 22:30 倾斜的镜子 阅读(33369) 评论(2) 推荐(5) 编辑

摘要:前段时间由于项目的原因,对一个由于分页而造成性能较差的SQL进行优化,现在将优化过程中学习到关于分页优化的知识跟大家简单分享下。 分页不外乎limit,offset,在这两个关键字中,limit其实不是性能瓶颈的主要原因,如果sql中定义了比较大的limit,说明了确实有一次性取出较多数据的需求,如 阅读全文
posted @ 2016-12-11 17:31 倾斜的镜子 阅读(727) 评论(0) 推荐(0) 编辑

摘要:最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手。下面将从整个数据库设计,开发,运维阶段介绍如何避免锁问题的发生,提供一些最佳实践供读者参考。 设计阶段 在数据库设计阶段,引擎选择和索引设计不当可 阅读全文
posted @ 2016-12-10 21:34 倾斜的镜子 阅读(900) 评论(0) 推荐(0) 编辑

摘要:要做的完全掌握MySQL/InnoDB的加锁规则,甚至是其他任何数据库的加锁规则,需要具备以下的一些知识点 有了这些知识点,再加上适当的实战经验,全面掌控MySQL/InnoDB的加锁规则,当不在话下。 最近开始关注MySQL的锁问题,也希望开始对锁有个大概的认识,今天从简单的概念入手;一般分为2种 阅读全文
posted @ 2016-11-30 16:34 倾斜的镜子 阅读(336) 评论(0) 推荐(0) 编辑

摘要:首先我们来说下in()这种方式的查询 在《高性能MySQL》里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的。使用in这种方式其实MySQL优化器是转化成了n*m种组合方式来进行查询,最终将返回值合并,有点类似union但 阅读全文
posted @ 2016-11-29 15:30 倾斜的镜子 阅读(3316) 评论(0) 推荐(0) 编辑

摘要:前言 排序是数据库中的一个基本功能,MySQL也不例外。用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序。本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理 阅读全文
posted @ 2016-10-31 23:17 倾斜的镜子 阅读(294) 评论(0) 推荐(0) 编辑

摘要:最近一直在做订单类的项目,使用了事务。我们的数据库选用的是MySQL,存储引擎选用innoDB,innoDB对事务有着良好的支持。这篇文章我们一起来扒一扒事务相关的知识。 为什么要有事务? 事务广泛的运用于订单系统、银行系统等多种场景。如果有以下一个场景:A用户和B用户是银行的储户。现在A要给B转账 阅读全文
posted @ 2016-07-13 21:05 倾斜的镜子 阅读(3017) 评论(0) 推荐(0) 编辑

摘要:利用硬链接和truncate降低drop table对线上环境的影响 众所周知drop table会严重的消耗服务器IO性能,如果被drop的table容量较大,甚至会影响到线上的正常。 首先,我们看一下为什么drop容量大的table会影响线上服务 直接执行drop table,mysql会将表定 阅读全文
posted @ 2016-03-30 22:03 倾斜的镜子 阅读(1252) 评论(1) 推荐(0) 编辑

摘要:今天被开发提交的DDL变更再次困惑,表中字段较多,希望将已有的两个varchar(4000)字段改为varchar(20000),我想innodb对varchar的存储不就是取前768字节记录当前行空间嘛,所以变更不会有任何问题的,但铁打的事实给了我结结实实的一个巴掌,直接报错,现在回放下这个错误! 阅读全文
posted @ 2016-03-29 22:24 倾斜的镜子 阅读(7535) 评论(0) 推荐(1) 编辑

摘要:复制对于mysql的重要性不言而喻,mysql集群的负载均衡,读写分离和高可用都是基于复制实现。下文主要从4个方面展开,mysql的异步复制,半同步复制和并行复制,最后会简单聊下第三方复制工具。由于生产环境中,innodb存储引擎支持事务,并且行级复制使用广泛,所以下文的讨论都是基于这种假设。 1. 阅读全文
posted @ 2016-03-28 09:09 倾斜的镜子 阅读(1312) 评论(0) 推荐(0) 编辑

摘要:一些SQL命令(不断更新,我总记不住,哭) List 建库建表 表的重命名(不区分大小写) 列的重命名 编码 修改结构 添加删除索引 大批量删除 binlog相关 select相关 数据库备份和恢复 建库建表 GBK: CREATE DATABASE `test_db1` DEFAULT CHARA 阅读全文
posted @ 2016-03-07 23:06 倾斜的镜子 阅读(488) 评论(0) 推荐(0) 编辑

摘要:背景 之前有业务反馈表中start_time,end_time时间字段随着时间的推移被自动更新,这可不是业务意愿,说的严重点是要出故障的。 MySQL中有DATE,DATETIME,TIMESTAMP时间类型 看看官方文档怎么说 The DATE type is used for values wi 阅读全文
posted @ 2016-02-28 22:45 倾斜的镜子 阅读(2882) 评论(0) 推荐(0) 编辑

摘要:相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 我字段类型是not null,为什么我可以插入空值 为毛not null的效率比null高 判断字段不为空的时候,到底要 select * from table where column <> '' 还是要用 s 阅读全文
posted @ 2016-02-21 22:04 倾斜的镜子 阅读(11314) 评论(0) 推荐(1) 编辑

摘要:版权声明:尊重博主劳动成果,欢迎转载,转载请注明出处 --爱技术的华仔 Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面。Innodb还有另外一个日志Undo log Undo log是存放在共享表空间里面的(ibda 阅读全文
posted @ 2016-01-24 16:39 倾斜的镜子 阅读(920) 评论(0) 推荐(0) 编辑

摘要:接触MySQL已经有一段时间了,了解如何优化它也迫在眉睫了,话说工欲善其事,必先利其器。最近我就打算了解下几个优化MySQL中经常用到的工具。今天就简单介绍下EXPLAIN。环境准备Explain 介绍idselect_typetabletypepossible_keyskeykey_lenrefr... 阅读全文
posted @ 2016-01-23 17:36 倾斜的镜子 阅读(1545) 评论(1) 推荐(0) 编辑

摘要:之前在没有备库的情况下,遇到过more than 'max_binlog_cache_size' bytes of storage 的错误,今天在主备复制的时候又遇到了这个问题Last_SQL_Errno: 1197Last_SQL_Error: Worker 14 failed executing... 阅读全文
posted @ 2015-12-16 21:38 倾斜的镜子 阅读(8111) 评论(1) 推荐(0) 编辑

摘要:今天开发在导入数据的时候报一个错误: 原因:发现导入的数据单行长度较长。 官方文档的解决办法为: 1.垂直表字段拆分或者大字段合并(大字段最多不超过768,业务进行合并+拆分),divide your table into small ones. If one table contain more 阅读全文
posted @ 2015-12-10 21:10 倾斜的镜子 阅读(14402) 评论(0) 推荐(0) 编辑

摘要:有同学问到InnoDB的索引长度问题,简单说几个tips。MySQL的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制。myisam表,单列索引,最大长度不能超过 1000 bytes,否则会报警,但是创建成功,最终创建的是前缀索引(取前333个字符)。myisam表,组合索... 阅读全文
posted @ 2015-12-08 01:09 倾斜的镜子 阅读(9425) 评论(0) 推荐(0) 编辑

摘要:对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考... 阅读全文
posted @ 2015-11-19 11:04 倾斜的镜子 阅读(15096) 评论(0) 推荐(0) 编辑

1 2 下一页