当前位置:网站首页>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 :
边栏推荐
- ORACLE EBS 和 APEX 集成登录及原理分析
- Take you to master the formatter of visual studio code
- php中删除指定文件夹下的内容
- Oracle段顾问、怎么处理行链接行迁移、降低高水位
- Oracle APEX 21.2 installation et déploiement en une seule touche
- Write a thread pool by hand, and take you to learn the implementation principle of ThreadPoolExecutor thread pool
- ORACLE 11G SYSAUX表空间满处理及move和shrink区别
- Build FRP for intranet penetration
- Analysis of MapReduce and yarn principles
- 2021-07-05C#/CAD二次开发创建圆弧(4)
猜你喜欢
随机推荐
SQLI-LABS通关(less2-less5)
Oracle 11g uses ords+pljson to implement JSON_ Table effect
User login function: simple but difficult
view的绘制机制(二)
oracle apex ajax process + dy 校验
一个中年程序员学习中国近代史的小结
在php的开发环境中如何调取WebService?
php中生成随机的6位邀请码
JSP智能小区物业管理系统
Oracle segment advisor, how to deal with row link row migration, reduce high water level
类加载器及双亲委派机制
RMAN incremental recovery example (1) - without unbacked archive logs
ssm+mysql实现进销存系统
【信息检索导论】第六章 词项权重及向量空间模型
叮咚,Redis OM对象映射框架来了
Oracle apex Ajax process + dy verification
php中根据数字月份返回月份的英文缩写
MySQL组合索引加不加ID
矩阵的Jordan分解实例
ORACLE 11.2.0.3 不停机处理SYSAUX表空间一直增长问题









