mysql sharding(碎片)介绍_MySQL教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:MySql数据分区操作之新增分区操作
如果想在已经建好的表上进行分区,如果使用alter添加分区的话,mysql会提示错误: 代码如下: ERROR 1505 HY000 Partition management on a not partitioned table is not possible 正确的方法是新建一个具有分区的表,结构一致,然后用insert into 分区表 select * fro

   1、Sharding 的应用场景一般都那些?

  当数据库中的数据量越来越大时,不论是读还是写,压力都会变得越来越大。试想,如果一张表中的数据量达到了千万甚至上亿级别的时候,不管是建索引,优化缓存等,都会面临巨大的性能压力。sharding通过某种条件,把同一个数据库中的数据分散到多个数据库或多台机器上,以减小单台机器压力。

  联机游戏、IM、BSP 都是比较适合 Sharding 的应用场景;

  2、Sharding与数据库分区(Partition)的区别?

  sharding实现了数据的分布式部署,将数据通过一系列的切分规则,把数据分布到不同的DB服务器上,通过路由规则访问特定的数据库,这样一来,每次访问面对的就不是单台服务器,而是N台服务器,这样就降低了单台服务器的压力。

  partition只实现了DB内的分区,不能跨服务器部署。

  “Shard” 这个词英文的意思是”碎片”,而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。”Sharding” 姑且称之为”分片”。

  Sharding 不是一门新技术,而是一个相对简朴的软件理念。如您所知,MySQL 5 之后才有了数据表分区功能,那么在此之前,很多 MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑,而是否具备分区功能就成了衡量一个数据库可扩展性与否的一个关键指标(当然不是唯一指标)。数据库扩展性是一个永恒的话题,MySQL 的推广者经常会被问到:如在单一数据库上处理应用数据捉襟见肘而需要进行分区化之类的处理,是如何办到的呢? 答案是:Sharding。

  Sharding 不是一个某个特定数据库软件附属的功能,而是在具体技术细节之上的抽象处理,是水平扩展(Scale Out,亦或横向扩展、向外扩展)的解决方案,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。

分享:mysql的分区技术详细介绍
一、概述 当 MySQL的总记录数超过了100万后,会出现性能的大幅度下降吗?答案是肯定的,但是,性能下降的比率不一而同,要看系统的架构、应用程序、还有包括索引、服务器硬件等多种因素而定。当有网友问我这个问题的时候,我最常见的回答就是:分表,可以根据id区间或者

来源:模板无忧//所属分类:MySQL教程/更新时间:2015-03-18
相关MySQL教程