随笔分类 - Mysql基础、性能、架构
摘要:在《一致性hash算法(consistent hashing)》一文中已经介绍了一致性hash的基本原理,本文将会对其具体实现细节进行描述,并用c++语言对一致性hash进行了简单的实现。 一致性hash算法实现有两个关键问题需要解决,一个是用于结点存储和查找的数据结构的选择,另一个是结点hash算法的选择。 首先来谈一下一致性hash算法中用于存储结点的数据结构。通过了解一致性hash的原理,我们知道结点可以想象为是存储在一个环形的数据结构上(如下图),结点A、B、C、D按hash值在环形分布上是有序的,也就是说结点可以按hash值存储在一个有序的队列里。如下图所示,当一个hash值为-2.
阅读全文
摘要:对Mysql进行深入的分析对于发现mysql性能瓶颈和寻找优化策略是十分必要的。 我们可以从不同的粒度上对Mysql进行分析:可以整体分析服务器,或者检查单个查询或批查询。通过分析,我们得到的如下信息:1、Mysql访问得最多的数据2、Mysql执行得最多的查询的种类3、Mysql停留时间最长的状态4、Mysql用来执行查询的使用得最频繁的子系统5、Mysql查询过程中访问的数据种类6、Mysql执行了多少种不同类型的活动,比如索引扫描。Mysql提供了两种查询日志,它们可以为我们获取以上信息提供帮助。 这两种查询日志为普通日志(general log)和慢速日志(slow log)。G...
阅读全文
摘要:一致性hash算法(consistent hashing)1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ;hash(object)%N一切都运行正常,再考虑如下的两种情况;1 一个 cache 服务器 m down 掉了(在实际应用中必须要考虑这种情况),这样所有映射到 cache m 的对象都会失效,怎么办,需要把 cache m 从 cache 中移除,这时候 cache 是 N-1
阅读全文
摘要:Mysql不同存储引擎的表转换方法1、Alter table 直接修改表的存储引擎,但是这样会导致大量的系统开销,Mysql为此要执行一个就表向新表的逐行复制。在此期间,转换操作可能会占用服务器的所有I/O处理能力。转换表之后,原先引擎的特殊性质都会丢失,无法复原。2、转储和导入方法 用提供的mysqldump工具,可以将原有的表转换为一个文本文件,然后修改该文件,将里面的create table语句的引擎选项修改为需要更改后的引擎。3、创建一个新的表,并把旧表中的数据导入新的表 create table innodb_table like myisam_table ; alter ta...
阅读全文
浙公网安备 33010602011771号