I’m facing a dilemma. I pull data from my table by two fields:
**field 1**
1979385197241
1235467
95823352353
9089892189735
versus
**field 2**
6
2
7
2
1
Lets say the table has about 2000 rows and 40 fields. Would the loading time vary significantly should I order it by one or the other field?
I’m asking because the bigger numbers are live, and the smaller ones are updated by a cronjob by the bigger numbers. If I were to order the rows by field 2, I’d have live results. No need for a cronjob.
Ordering by numbers is a binary comparison operation and will happen in equal time for anything up to the processor’s integer size (usually 32 bit). In either case, both numbers are probably compared in a single processor instruction (Intel assembly: cmp. Time to load register and check value not withstanding…). Only on a 32 bit system with a 64 bit number AND with the first 32 bits of both numbers being the same would it take more time to compare the larger number to the smaller one. All sorting operations are done by comparing two numbers at a time.
In practical terms, never worry about the size of a number that you’re sorting. 9999999999999999999999999999999999999999999999999999999999999999999999 cmp 1 — same amount of time as 2 cmp 1 — we know right away that we don’t have to check the full length of the first string of 9s.