数据库
文章平均质量分 86
百里挑一
这个作者很懒,什么都没留下…
展开
-
数据库Sharding的基本思想和切分策略
本文着重介绍sharding的基本思想和理论上的切分策略一、基本思想 Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表转载 2016-04-05 10:02:21 · 268 阅读 · 0 评论 -
记录一次 Mysql 死锁排查过程
背景以前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的死锁场景。在多方调研以及和同事们的讨论下终于发现了这个死锁问题的成因,收获颇多。虽然是后端程序员,我们不需要像DBA一样深入地去分析与锁相关的源码,但是如果我们能够掌握基本的死锁排查方法,对我们的日常开发还是大有裨益的。原创 2017-03-02 17:38:03 · 617 阅读 · 0 评论 -
MySQL 中的两种临时表
外部临时表通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束的时候,该临时表会自动关闭。这种临时表的命名与非临时表可以同名(同名后非临时表将对当前会话不可见,直到临时表被删除)。内部临时表内部临时表是一种特殊轻量级的临时表,用来进行性能优化。这种临时表会被MySQL自动创建并用来存储某些操作的中原创 2017-03-02 17:34:31 · 8990 阅读 · 0 评论 -
MySQL误操作后如何快速恢复数据
基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,不小心update了整张表的某个字段,或者delete一张表,忘加限制条件,整张表都没了。假如这还是线上环境核心业务数据,那这事就闹大了。误操作后,能快速回滚数据是非常重要的。传统解法用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态。然后跳过误操作的SQL,再继原创 2017-01-03 17:53:20 · 2117 阅读 · 0 评论 -
MySQL 大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使原创 2017-01-03 17:47:47 · 237 阅读 · 0 评论 -
MySQL 性能优化总结
本文乃《MySQL性能调优与架构设计》读书笔记!一、MySQL的主要适用场景1、Web网站系统2、日志记录系统3、数据仓库系统4、嵌入式系统二、MySQL架构图三、MySQL存储引擎概述1)MyISAM存储引擎MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可原创 2016-11-28 12:51:57 · 1003 阅读 · 0 评论 -
水平分库分表的关键步骤以及可能遇到的问题
分片技术的由来关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务器那么容易扩展。在互联网行业海量数据和高并发访问的考验下,聪明的技术人员提出了分库分表技术(有些地方也称为Sharding、分片)。同时,流行的分布式系统中间件(例如MongoDB、ElasticSearch等)均自身友好支持Sha原创 2016-11-25 14:09:43 · 901 阅读 · 0 评论 -
分库分表的几种常见形式以及可能遇到的难题
前言在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合以往经验介绍了对应的解决思原创 2016-11-25 14:08:41 · 345 阅读 · 0 评论 -
数据库相关中间件(下)
数据增量订阅与消费基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql.有关数据增量订阅与消费的中间件回顾一下:增量订阅和消费模块应当包括binlog日志抓取,binlog日志解析,事件分发过滤(EventSink),存储(EventStore)等主要模块。如果需要确保HA可以采用Zookeeper保存各个子模块的状态,让整个原创 2016-11-23 11:16:40 · 1727 阅读 · 0 评论 -
数据库相关中间件(上)
数据库中间件这里主要介绍互联网行业内有关数据库的相关中间件。数据库相关平台主要解决以下三个方面的问题:为海量前台数据提供高性能、大容量、高可用性的访问为数据变更的消费提供准实时的保障高效的异地数据同步应用层通过分表分库中间件访问数据库,包括读操作(Select)和写操作(update, insert和delete等,DDL, DCL)。写原创 2016-11-23 11:11:51 · 542 阅读 · 0 评论 -
MySQL 分区表
今天统计数据的时候发现一张表使用了表分区,借此机会记录一下。1. 什么是表分区?表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。2. 表分区与分表的区别分表:指的是通过一定规则,将一张表分解成多张不同的表。比如将用户订单记录根据时间成多个表。 分表与分区的区别在于:分区从逻辑上来讲原创 2016-11-15 10:07:18 · 300 阅读 · 0 评论 -
不同场景下 MySQL 的迁移方案
一 为什么要迁移MySQL 迁移是 DBA 日常维护中的一个工作。迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性。就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地方,铸就内心神往的城堡。生产环境中,有以下情况需要做迁移工作,如下:磁盘空间不够。比如一些老项目,选用的机型并不一定适用于数据库。随着时间的推移,硬盘很有可能出现短缺;原创 2016-11-15 10:04:38 · 245 阅读 · 0 评论 -
navicat 12破解
一、Navicat Premium 12下载Navicat Premium 12是一套数据库开发管理工具,支持连接 MySQL、Oracle等多种数据库,可以快速轻松地创建、管理和维护数据库。Navicat Premium 12简体中文下载:www.navicat.com.cn官网或者在百度云盘快速通道下载:Navicat Premium 12.0.22 - 12.0.24 简...转载 2019-04-20 16:41:26 · 2724 阅读 · 0 评论