Mysql不加order by情况下的默认排序
格式化版
https://www.wolai.com/rczaUkHDcrJTDta5cRwcUo
测试前提
mysql8.0 innodb & tidb5.3
先说结论
默认排序取决于用上了什么索引,用上什么索引出来的就是什么排序,和插入顺序无关
测试
CREATE TABLE `test` (
`id` int NOT NULL AUTO_INCREMENT,
`a` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`b` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`c` int DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_c` (`c`),
KEY `index_a` (`a`),
KEY `index_b` (`b`)
) ENGINE=InnoDB AUTO_INCREMENT=30002 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
INSERT INTO `zzw_test`.`test`(`id`, `a`, `b`, `c`) VALUES (1, 'a', 'b', 4);
INSERT INTO `zzw_test`.`test`(`id`, `a`, `b`, `c`) VALUES (3, 'c', 'c', 5);
INSERT INTO `zzw_test`.`test`(`id`, `a`, `b`, `c`) VALUES (5, 'b', 'a', 1);
INSERT INTO `zzw_test`.`test`(`id`, `a`, `b`, `c`) VALUES (4, 'd', 'd', 6);
使用主键索引
使用a索引
使用b索引
使用c索引