db2 select * 不加group by 每次查询结果顺序不一样?
数据量20w+,没有blob字段,有主键(2个varchar字段,pk1和pk2)
select * from table 取前100条,每次结果都不一样(不走索引可以理解,但是默认排序规则都不稳定?)
select pk1,pk2 from table 取前100条,每次结果一样(走主键索引了正常)
select * from table2 取前100条,每次结果一样(table2是另一张表,数据量7k)
想问select * 为什么不稳定?和数据量有关吗?为什么另一张表没排序也稳定,这个表就不行?
别说加group by,问题就是想知道不加group by的情况下,select * 为什么不稳定。
我写的是一个跨不同类型数据库批量迁移库表的程序,库表字段都是动态的,由于数据量大要分页读写,顺序不确定分页就会有问题。可以从系统表获取全部字段加入排序,但是性能不行啊。目前我想到唯一的处理方式就是全字段排序了。
求大神仙解答!
不排序的话,顺序就是随机的,group by也会排序
只要不排序,就保证不了数据库的顺序,数据库会根据自己最优的算法,展示出前多少条数据