免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: brightcrest
打印 上一主题 下一主题

MYSQL cluster 能对数据分段存储吗? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-07-29 16:35 |只看该作者
原帖由 qlks 于 2007-7-29 14:21 发表


这句话我该怎么理解?
你给我个SQL语句看看



你可以去看 mysql cluster 优化一节,里面有相对详细的介绍
范围查询是mysql cluster的弱项,因为不同的key对应的记录存放在不同的data group上

论坛徽章:
0
12 [报告]
发表于 2007-07-29 16:39 |只看该作者
原帖由 qlks 于 2007-7-29 14:23 发表


这句话说的也有问题
如果我有多个node group,做了replica为2的4节点DATA node
而后面的一个node group是后面添加的呢



具体精确的算法情况我也不知道,源码我是不太可能去分析的
我猜测一下可能是着这样的:

data node不是需要设定内存使用大小么,如果后期扩展添加先的data group进去
mysql cluster应为会不同的data node group可用的空间大小,从而在对hash进行分配的时候进行加权

当然这只是我的猜测,我只见过介绍说是用key的md5进行分布的

论坛徽章:
0
13 [报告]
发表于 2007-07-29 20:07 |只看该作者
谢谢各位老师
我有点明白了。
如果我的数据量过大,就在一个mysql cluster 里配置多个数据节点, MYSQL有自己的算法将数据分布式存储在这些节点中的一个节点。
但是这时候的数据是不安全的,因为数据没有一个备份。
为此可以再配置另一个mysql cluster 与原有的cluster 构成replication.这样数据就有备份了。
再有问题估计就是这种配置在某些情况下的性能问题了。

论坛徽章:
0
14 [报告]
发表于 2007-07-29 21:25 |只看该作者
原帖由 brightcrest 于 2007-7-29 20:07 发表
谢谢各位老师
我有点明白了。
如果我的数据量过大,就在一个mysql cluster 里配置多个数据节点, MYSQL有自己的算法将数据分布式存储在这些节点中的一个节点。
但是这时候的数据是不安全的,因为数据没有一个 ...



在配置cluser的时候本身就有一个参数 replicas,也就是副本数目 我的签名里有

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-12 06:20:00
15 [报告]
发表于 2007-07-30 13:18 |只看该作者
原帖由 showsa 于 2007-7-29 16:35 发表



你可以去看 mysql cluster 优化一节,里面有相对详细的介绍
范围查询是mysql cluster的弱项,因为不同的key对应的记录存放在不同的data group上


手册中是这么说的
The data in MySQL Cluster is partitioned based on a hash of the PRIMARY KEY column(s).
This means the primary key is implemented through a hash index type. A hash index can be
used to resolve queries that are used with equals but cannot be used for range scans.

但是手册中还这么说了
All the queries that could be resolved with a B-tree index can also be resolved by using a Ttree
index. This includes all the normal range scans, such as less than, between, and greater
than. So if you are switching an application from MyISAM or InnoDB to MySQL Cluster,
it should continue to work the same for query plans.

[ 本帖最后由 qlks 于 2007-7-30 13:25 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2007-07-30 15:16 |只看该作者
性能问题,要是有个测试结果,看一看应该就能知道基于范围的查询是不是会有性能损失。我猜测是有的。
另外我想如果查询语句中没有主键的话,性能也应该会受到影响,因为cluster要花时间去确定访问哪些节点组或者必须访问所有节点组才能得到所要的查询结果。

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-12 06:20:00
17 [报告]
发表于 2007-07-31 11:25 |只看该作者
原帖由 brightcrest 于 2007-7-30 15:16 发表
性能问题,要是有个测试结果,看一看应该就能知道基于范围的查询是不是会有性能损失。我猜测是有的。
另外我想如果查询语句中没有主键的话,性能也应该会受到影响,因为cluster要花时间去确定访问哪些节点组或者 ...


不走主键肯定比走主键的慢,很正常的事情
再者范围查找所牵涉到的网络问题又不是MySQL Cluster的问题
Oracle RAC就不受网络影响了?

论坛徽章:
0
18 [报告]
发表于 2007-12-11 19:17 |只看该作者
同意LS。
看我的测试:

mysql> call sp_insert_batch(50000);
Query OK, 0 rows affected (3.77 sec)
我们的网络是下载速度不到100K的。

mysql> alter table t11 engine ndb;
Query OK, 50000 rows affected (12 min 30.61 sec)
Records: 50000  Duplicates: 0  Warnings: 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP