A_ID int Auto_Incr
A_TEXT char 255
A_ID为unique的Index,我们增加如下的数据
1,AA
2,CC
3,BB
此时select(不用order by)出来的A_ID顺序就是1,2,3
但当我们给A_TEXT也增加索引(非unique)时,再select(不用order by)出来,顺序是1,3,2
大家都知道,想要给A_ID排序那只要order by A_ID就OK了,但是由于数据比较大,百万甚至千万级别,再需要多表关联查询,如果order by 一下,会花去大量时间.
因此,我想,有没有什么办法在表中有多个索引时,指定默认的排序方式?
4 个解决方案
#1
用你上述数据,你要求的结果是什么?
#2
找到原因了,是因为我先做表,然后加数据,再加其它索引,MySQL的默认排序就乱了
但如果先把索引都加好,然后添加数据,就会按照主键默认排序了.
谢谢各位朋友的关注.
但如果先把索引都加好,然后添加数据,就会按照主键默认排序了.
谢谢各位朋友的关注.
#3
索引的排序是数据库系统自身控制的。 显示的时候的排序应该由用户在SQL语句中用order by 确定.感觉你楼上的方法,先建索引再加数据,应该还是会有乱序的情况。
#4
Mysql 默认就是根据主键进行排序的
#1
用你上述数据,你要求的结果是什么?
#2
找到原因了,是因为我先做表,然后加数据,再加其它索引,MySQL的默认排序就乱了
但如果先把索引都加好,然后添加数据,就会按照主键默认排序了.
谢谢各位朋友的关注.
但如果先把索引都加好,然后添加数据,就会按照主键默认排序了.
谢谢各位朋友的关注.
#3
索引的排序是数据库系统自身控制的。 显示的时候的排序应该由用户在SQL语句中用order by 确定.感觉你楼上的方法,先建索引再加数据,应该还是会有乱序的情况。
#4
Mysql 默认就是根据主键进行排序的