学习笔记:MySQL Cluster 的结果顺序

it2022-05-05  146

最近搭建了MySQL Cluster的环境来学习,发现一个很有意思的现象,在不加order by的情况下,返回的结果顺序是随机的,每次都不一样,如下

mysql> select * from test_ndb limit 3; +---+-------+ | i | a | +---+-------+ | 5 | test5 | | 1 | test1 | | 2 | test2 | +---+-------+ 3 rows in set (0.05 sec)

mysql> select * from test_ndb limit 3; +---+-------+ | i | a | +---+-------+

| 7 | test7 | | 3 | test3 | | 6 | test6 | +---+-------+ 3 rows in set (0.03 sec)

mysql> select * from test_ndb limit 3; +---+-------+ | i | a | +---+-------+ | 5 | test5 | | 1 | test1 | | 2 | test2 | +---+-------+ 3 rows in set (0.05 sec)

 

我想这应试与NDB的存储方式有关吧,NDB实际上将表的数据用hash算法分布到不同结点,NDB表的主键并不像InnoDB一样是聚集索引,而是hash索引,所以在取数据的时候每次的顺序就不一定一样了。

转载于:https://www.cnblogs.com/seawwh/archive/2011/10/28/2227755.html


最新回复(0)