随笔分类 -  mysql

摘要:背景 背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路 阅读全文
posted @ 2018-07-25 16:24 chengchao 阅读(428) 评论(0) 推荐(0) 编辑
摘要:线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统的分析问题,本文将从死锁检测、索引 阅读全文
posted @ 2018-07-25 16:18 chengchao 阅读(14325) 评论(2) 推荐(1) 编辑
摘要:本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的 阅读全文
posted @ 2018-07-25 15:34 chengchao 阅读(270) 评论(0) 推荐(0) 编辑
摘要:先去查一下“引擎”概念。 引擎(Engine)是电子平台上开发程序或系统的核心组件。利用引擎,开发者可迅速建立、铺设程序所需的功能,或利用其辅助程序的运转。一般而言,引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎,搜索引擎,杀毒引擎等。 Ok,我们知道了,引擎就是一个程序的核心组件。 阅读全文
posted @ 2018-07-25 14:48 chengchao 阅读(404) 评论(0) 推荐(0) 编辑
摘要:一. 分表 场景:对于大型的互联网应用来说,数据库单表的记录行数可能达到千万级甚至是亿级,并且数据库面临着极高的并发访问。采用Master-Slave复制模式的MySQL架构, 只能够对数据库的读进行扩展,而对数据库的写入操作还是集中在Master上,并且单个Master挂载的Slave也不可能无限 阅读全文
posted @ 2018-07-24 16:36 chengchao 阅读(1457) 评论(0) 推荐(0) 编辑
摘要:常用的两种索引结构:B-tree和HASH B-tree B-tree索引能够加快访问数据的速度,因为存储引擎不再需要经行全表扫描来获取需要的数据,取而代之的是从根节点开始搜索。根节点的槽中存放了指向子节点的指针,存储引擎根据这些指针向下查找。通常比较节点页的值和要查找的值可以找到合适的指针进入下层 阅读全文
posted @ 2018-07-24 15:33 chengchao 阅读(642) 评论(0) 推荐(0) 编辑
摘要:原文链接: http://www.promptness.cn/article/4 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, 阅读全文
posted @ 2018-06-27 11:47 chengchao 阅读(695) 评论(0) 推荐(0) 编辑
摘要:有数据表明:用户可以承受的最大等待时间为8秒。 之前曾见过某个产品的一个列表页,40秒左右才能加载出来,几乎没有进行任何优化措施。 没有索引,没有缓存机制,没有进行sql优化(sql语句很长,并且各种left join表关联)。 数据库优化策略有很多,设计初期,建立好的数据结构对于后期性能优化至关重 阅读全文
posted @ 2017-07-05 14:18 chengchao 阅读(389) 评论(0) 推荐(0) 编辑