10
And here, for the obligatory timing (I added the basic Sort to the methods):
a = RandomReal[{0, 10}, {1000000, 3}];
Sort[a, #2[[2]] < #1[[2]] &]; // Timing
(* ==> {34.367, Null} *)
SortBy[a, #[[2]] &]; // Timing
(* ==> {0.436, Null} *)
a[[Ordering[a[[All, 2]]]]]; // Timing
(* ==> {0.234, Null}, Chris wins *)