当前位置:网站首页>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 :
边栏推荐
- 架构设计三原则
- ARP攻击
- 优化方法:常用数学符号的含义
- Oracle EBS interface development - quick generation of JSON format data
- MySQL无order by的排序规则因素
- Two table Association of pyspark in idea2020 (field names are the same)
- Oracle 11g sysaux table space full processing and the difference between move and shrink
- CAD二次开发 对象
- php中根据数字月份返回月份的英文缩写
- 实现接口 Interface Iterable<T>
猜你喜欢

User login function: simple but difficult

Oracle EBs and apex integrated login and principle analysis

Build FRP for intranet penetration

MySQL无order by的排序规则因素

ERNIE1.0 与 ERNIE2.0 论文解读

Analysis of MapReduce and yarn principles

Sqli labs customs clearance summary-page2

中年人的认知科普

view的绘制机制(一)

ORACLE EBS ADI 开发步骤
随机推荐
oracle EBS标准表的后缀解释说明
【信息检索导论】第一章 布尔检索
TCP攻击
Oracle RMAN semi automatic recovery script restore phase
Oracle 11.2.0.3 handles the problem of continuous growth of sysaux table space without downtime
读《敏捷整洁之道:回归本源》后感
叮咚,Redis OM对象映射框架来了
CRP implementation methodology
CAD secondary development object
Network security -- intrusion detection of emergency response
Yaml file of ingress controller 0.47.0
SSM学生成绩信息管理系统
sqli-labs通关汇总-page2
Sqli labs customs clearance summary-page4
php中树形结构转数组(拉平树结构,保留上下级排序)
2021-07-19C#CAD二次开发创建多线段
CRP实施方法论
2021-07-05c /cad secondary development create arc (4)
pySpark构建临时表报错
Explain in detail the process of realizing Chinese text classification by CNN