扛得住MySQL 之 数据库分片演示(OneProxy)
来源:互联网 发布:游戏端口路由跟踪 编辑:程序博客网 时间:2024/05/18 20:08
在分布式数据库中,分区,分片,分库,分表的区别是什么?
分区:
原来所有的数据都是在一个数据库上的,网络IO及文件IO都集中在一个数据库上的,因此CPU、内存、文件IO、网络IO都可能会成为系统瓶颈。而分区的方案就是把某一个或某几张相关的表的数据放在一个独立的数据库上,这样就可以把CPU、内存、文件IO、网络IO分解到多个机器中,从而提升系统处理能力。
分表:
当数据量大到一定程度的时候,都会导致处理性能的不足,这个时候就没有办法了,只能进行分表处理。也就是把数据库当中数据根据按照分库原则分到多个数据表当中,这样,就可以把大表变成多个小表,不同的分表中数据不重复,从而提高处理效率。
分库:
分表和分区都是基于同一个数据库里的数据分离技巧,对数据库性能有一定提升,对MySQL数据库的吞吐量无质的变化。当业务系统的数据容量接近或超过单台X86服务器的容量、QPS/TPS接近或超过单个MySQL数据库实例的处理极限等,则重点在于扩展MySQL数据库的吞吐量和数据处理量。此时,往往是采用垂直和水平结合的数据拆分方法,把数据服务和数据存储分布到多台MySQL数据库服务器上。
分库只是一个通俗说法,更标准名称是数据分片,采用类似分布式数据库理论指导的方法实现,对应用程序达到数据服务的全透明和数据存储的全透明
分片:
分区有两种模式,一种是主从模式,用于做读写分离;另外一种模式是分片模式,也就是说把一个表中的数据分解到多个表中。一个分区只能是其中的一种模式。
分片演示场景:
特点:不仅能实现数据库的分片,还能实现负载均衡,读写分离;不足之处是对分片的支持不是太好;
应用场景:分片,业务透明,在物理实现上分成多个服务器,不同的分片在不同服务器上。分区可以把表分到不同的硬盘上,但不能分配到不同服务器上。一台机器的性能是有限制的,用分片可以解决单台服务器性能不够,或者成本过高问题。
当分区之后,表还是很大,处理不过来,这时候可以用分片。
了解oneproxy:http://www.onexsoft.com/zh/oneproxy.html
1、Node3上下载oneproxy
wget http://www.onexsoft.cn/software/oneproxy-rhel6-linux64-v5.8.1-ga.tar.gztar -zxf oneproxy-rhel6-linux64-v5.8.1-ga.tar.gz
cd oneproxy
vim demo.sh
cd conf vim proxy.conf
生成密码:
在Node1中:
create user test@'192.168.1.%' identified by '123456';create databases orders;grant all privileges on order.* to test@'192.168.1.%';
在Node2中:
create user test@'192.168.1.%' identified by '123456';create databases orders;grant all privileges on order.* to test@'192.168.1.%';
Node3中:
cd .../demo.sh
mysql -p4041 -uadmin -pOneProxy -h127.0.0.1 #进入oneProxy管理页面
passwd "123456"; #加密密码
进入配置文件修改:
vim 自己制定配置名称
设置自己的分区规则:
订单商品表复制上面就可以;
在Node1创建:
在Node2中创建和以上一样的表;
在Node3中重启oneproxy;
mysql -p4041 -uadmin -pOneProxy -h127.0.0.1 #进入oneProxy管理页面list backend; #查看后台服务
vim test.sh #写一个sh脚本
运行 bash ./test.sh
查询表中的数量
select count(*) from order_product;
实现效果:
Node2中分类表数据数量不一致了,在维护群体表中并不是在一个事务,所以就很容易出现数据错误(如果出现了数据不一致,只能手动的把差异数据补齐);
0 0
- 扛得住MySQL 之 数据库分片演示(OneProxy)
- 扛得住mysql 之 影响数据库性能的因素
- MySQL数据库视频教程之扛得住的MySQL数据库架构
- 用OneProxy部署MySQL数据库的读写分离
- 用OneProxy部署MySQL数据库的读写分离
- 扛得住MySQL 之 MySQL体系结构
- Mysql 中间件 oneProxy总结
- 扛得住mysql 之 操作系统
- MySQL 高可用:mysql+mycat实现数据库分片(分库分表)
- MySQL 高可用:mysql+mycat实现数据库分片(分库分表)
- MySQL 高可用:mysql+mycat实现数据库分片(分库分表)
- MySQL数据库分片技术调研
- 数据库专家:MySQL分片水很深
- 数据库专家:MySQL分片水很深
- 扛得住mysql 之 影响mysql的性能
- 打造扛得住的MYSQL数据库架构
- C连接MySQL数据库开发之Linux环境完整示例演示(增、删、改、查)
- Liferay研究之卅一:Database Sharding(数据库分片)
- 解决方法/usr/bin/ld: /usr/local/lib/liblua.a(lapi.o): relocation R_X86_64_32 against `luaO_nilobject_'
- git checkout
- ViewPager实现微信界面
- CSDN收藏的资料怎么查找
- textview怎么在代码中设置图片
- 扛得住MySQL 之 数据库分片演示(OneProxy)
- 第八章集成学习——周志华
- 资源搜索
- SVN锁相关——Attempted to lock an already-locked dir
- 【数据结构与算法】数组和单链表转平衡二叉树
- Android制作.9.png图
- Climbing Stairs
- ViewPager+RadioGroup实现微信UI界面
- Dragonboard410c服务器系列五之前后端数据交互