随笔分类 -  分库分表

摘要:零.MyISAM和InnoDB关于锁的区别 ①MyISAM默认用的是表级锁,不支持行级锁。 ②InnoDB默认用的是行级锁,也支持表级锁。 ③共享锁和排它锁的兼容性 |X|排它锁|共享锁| | | 排它锁|冲突|冲突 共享锁|冲突|兼容 ④使用场景 MyISAM A: 频繁执行全部count语句。 阅读全文
posted @ 2019-05-30 01:25 一条路上的咸鱼 阅读(701) 评论(0) 推荐(0) 编辑
摘要:零.索引简介 1. 索引是什么 ①MySQL官方对索引的定义是:索引(Index)是帮助MySQL高效获取数据的数据结构。 ②可以简单的理解为“排好序的快速查找数据结构”。 ③除了数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这种数据结构以某种方式指向数据,这样就可以在这些数据结构的基 阅读全文
posted @ 2019-05-29 20:48 一条路上的咸鱼 阅读(1163) 评论(1) 推荐(1) 编辑
摘要:1.为什么进行读写分离 这个,高并发这个阶段,那肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗? 2.如何实现mysql读写分离 其实 阅读全文
posted @ 2019-05-26 01:09 一条路上的咸鱼 阅读(359) 评论(0) 推荐(0) 编辑
摘要:1.问题 其实这是分库分表之后你必然要面对的一个问题,就是id咋生成?因为要是分成多个表之后,每个表都是从1开始累加,那肯定不对啊,需要一个全局唯一的id来支持。所以这都是你实际生产环境中必须考虑的问题。 2.生成方案 (1)数据库自增id方案 原理 :这个就是说你的系统里每次得到一个id,都是往一 阅读全文
posted @ 2019-05-26 00:29 一条路上的咸鱼 阅读(597) 评论(0) 推荐(0) 编辑
摘要:1.扩容与缩容 这个是你必须面对的一个事儿,就是你已经弄好分库分表方案了,然后一堆库和表都建好了,基于分库分表中间件的代码开发啥的都好了,测试都ok了,数据能均匀分布到各个库和各个表里去,而且接着你还通过双写的方案咔嚓一下上了系统,已经直接基于分库分表方案在搞了。 那么现在问题来了,你现在这些库和表 阅读全文
posted @ 2019-05-25 23:49 一条路上的咸鱼 阅读(996) 评论(0) 推荐(0) 编辑
摘要:1.停机迁移方案 这是最简单的也是最low的迁移方案了,如果系统就算短期停机也没有关系或者造不成多大的影响,可以选用此方案。 首先停掉机器,将系统全都停掉,不要再有新的数据进来,然后使用之前写好的程序,连接旧的数据库,将旧数据库里面的数据读出来,然后通过数据分发中间件写到分库分好的数据里面去。然后修 阅读全文
posted @ 2019-05-25 23:22 一条路上的咸鱼 阅读(2837) 评论(0) 推荐(1) 编辑
摘要:1.为什么要分库分表 ①分库分表说白了,就是因为数据量太大了,如果你的单表数据量都到了千万级别,那么你的数据库就无法承受高并发的要求,数据库操作性能就会出现极大的下降。 ②数据库并发量太大了,一般而言,一个数据库最多支撑并发到2000,这时候一定要进行扩容,不然性能会出现严重下降。而且一个健康的单库 阅读全文
posted @ 2019-05-25 23:06 一条路上的咸鱼 阅读(652) 评论(0) 推荐(0) 编辑