当前位置:网站首页>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 :
边栏推荐
- Sqli-labs customs clearance (less1)
- SQL injection closure judgment
- 使用Matlab实现:Jacobi、Gauss-Seidel迭代
- Error in running test pyspark in idea2020
- Sqli labs customs clearance summary-page2
- php中在二维数组中根据值返回对应的键值
- Brief analysis of PHP session principle
- ORACLE 11G利用 ORDS+pljson来实现json_table 效果
- ARP attack
- sqli-labs通關匯總-page2
猜你喜欢
Two table Association of pyspark in idea2020 (field names are the same)
spark sql任务性能优化(基础)
JSP智能小区物业管理系统
CAD secondary development object
ssm+mysql实现进销存系统
如何高效开发一款微信小程序
Sqli-labs customs clearance (less1)
The boss said: whoever wants to use double to define the amount of goods, just pack up and go
ssm超市订单管理系统
Yolov5 practice: teach object detection by hand
随机推荐
php中时间戳转换为毫秒以及格式化时间
mapreduce概念和案例(尚硅谷学习笔记)
php中计算树状结构数据中的合计
【模型蒸馏】TinyBERT: Distilling BERT for Natural Language Understanding
RMAN增量恢复示例(1)-不带未备份的归档日志
Oracle APEX 21.2 installation et déploiement en une seule touche
MySQL无order by的排序规则因素
Sqli labs customs clearance summary-page4
优化方法:常用数学符号的含义
A summary of a middle-aged programmer's study of modern Chinese history
类加载器及双亲委派机制
Explain in detail the process of realizing Chinese text classification by CNN
Network security -- intrusion detection of emergency response
Basic knowledge of software testing
图解Kubernetes中的etcd的访问
搭建frp进行内网穿透
Pratique et réflexion sur l'entrepôt de données hors ligne et le développement Bi
Pyspark build temporary report error
php中的数字金额转换大写数字
JSP intelligent community property management system