当前位置:网站首页>MySQL has no collation factor of order by
MySQL has no collation factor of order by
2022-07-02 07:18:00 【Software development heart】
Before experiencing the problems encountered in production , In my memory, I think MySQL Of SELECT In none order by Will press ID Sort returns ~
But it's not !!!
1. The following chapter is reproduced from : https://segmentfault.com/a/1190000016251056
I met one at work two days ago Mysql The question of sequencing , Without adding order by When , The order of acquired data is random , Instead of sorting by primary key . I used to mysql The default sorting of is by primary key . This is not the case .
①. Create a test database :
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` char(100) DEFAULT NULL,
`age` char(5) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `age` (`age`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
②. Insert some data :
INSERT INTO test VALUES(NULL,' Zhang San ','5');
INSERT INTO test VALUES(NULL,' Li Si ','15');
INSERT INTO test VALUES(NULL,' Wang Wu ','5');
INSERT INTO test VALUES(NULL,' Zhao Xin ','15');
INSERT INTO test VALUES(NULL,' Dema ','20');
INSERT INTO test VALUES(NULL,' Prince ','5');
INSERT INTO test VALUES(NULL,' mywood ','17');
INSERT INTO test VALUES(NULL,' Hero ','22');
INSERT INTO test VALUES(NULL,' Water Margin ','18');
INSERT INTO test VALUES(NULL,' Xiaofang ','17');
INSERT INTO test VALUES(NULL,' Lao Wang ','5');
③. Inquire about 5 Bar record :select * from test limit 5:
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | Zhang San | 5 |
| 2 | Zhang San | 5 |
| 3 | Li Si | 15 |
| 4 | Wang Wu | 5 |
| 5 | Zhao Xin | 15 |
+----+------+------+
5 rows in set (0.00 sec)
Now we only need to query two fields select id,age from test limit 5:
+----+------+
| id | age |
+----+------+
| 3 | 15 |
| 5 | 15 |
| 8 | 17 |
| 11 | 17 |
| 10 | 18 |
+----+------+
5 rows in set (0.00 sec)
Of two query statements Explain Implementation plan :
mysql> explain select * from test limit 5 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: test
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 12
Extra:
1 row in set (0.00 sec)
mysql> explain select id,age from test limit 5 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: test
type: index
possible_keys: NULL
key: age
key_len: 16
ref: NULL
rows: 12
Extra: Using index
1 row in set (0.00 sec)
Conclusion :
MySQL Not given order by conditional , The order of the data results obtained is related to the query column . Because in different query columns , Different index conditions may be used .Mysql When using different indexes , The order of data obtained is different . This may be the same as Mysql Indexing mechanism , And the use of indexes . To avoid that , In future projects , Remember to add order by
2. seek truth
Refer to some personal and official articles , Roughly understand that in none order by Under the circumstances , influence MySQL The factors of sorting rules are :
- SELECT Columns to query
- Index method
- physical position , That is, record the sequence of insertion rowid( Not ID The order of )
- Storage engine ,InnoDB、MyISM
[email protected] Of opinion :
https://stackoverflow.com/questions/8746519/sql-what-is-the-default-order-by-of-queries

MySQL Official website answer :
边栏推荐
- Principle analysis of spark
- Check log4j problems using stain analysis
- Laravel8中的find_in_set、upsert的使用方法
- Agile development of software development pattern (scrum)
- SQLI-LABS通关(less2-less5)
- oracle-外币记账时总账余额表gl_balance变化(上)
- Cloud picture says | distributed transaction management DTM: the little helper behind "buy buy buy"
- php中时间戳转换为毫秒以及格式化时间
- pm2简单使用和守护进程
- 解决万恶的open failed: ENOENT (No such file or directory)/(Operation not permitted)
猜你喜欢

外币记账及重估总账余额表变化(下)

Principle analysis of spark

Brief analysis of PHP session principle

在php的开发环境中如何调取WebService?

sqli-labs通关汇总-page2

Build FRP for intranet penetration

Take you to master the formatter of visual studio code

Sqli labs customs clearance summary-page4

Message queue fnd in Oracle EBS_ msg_ pub、fnd_ Application of message in pl/sql

SSM学生成绩信息管理系统
随机推荐
Principle analysis of spark
User login function: simple but difficult
Oracle rman半自动恢复脚本-restore阶段
CAD二次开发 对象
Oracle EBS数据库监控-Zabbix+zabbix-agent2+orabbix
php中通过集合collect的方法来实现把某个值插入到数组中指定的位置
2021-07-05c /cad secondary development create arc (4)
TCP attack
CRP实施方法论
parser.parse_args 布尔值类型将False解析为True
Explanation of suffix of Oracle EBS standard table
sqli-labs通关汇总-page1
Sqli-labs customs clearance (less1)
类加载器及双亲委派机制
Cloud picture says | distributed transaction management DTM: the little helper behind "buy buy buy"
MySQL组合索引加不加ID
spark sql任务性能优化(基础)
Sqli labs customs clearance summary-page4
Oracle EBS database monitoring -zabbix+zabbix-agent2+orabbix
Alpha Beta Pruning in Adversarial Search