Mysql不同存储引擎,在不指定order by时,查询结果默认排序方式

本文对比了MySQL的两个主要存储引擎——InnoDB和MyISAM。在MyISAM引擎中,创建表并按插入顺序显示数据,而InnoDB引擎则不保持默认排序。InnoDB支持事务处理和行级锁定,适合高并发和数据完整性要求高的场景,而MyISAM则以更快的读取速度和空间效率为特点,适用于读多写少的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题,mysql常用的存储引擎有 innodb 和 myisam,其他不做讨论;

 

一、先来看myisam引擎:

1、建表语句:

create table test_myisam(
  id int(11),
  name varchar(10) character set utf8,
  KEY `testIndex` (`id`)
) ENGINE=MyISAM;

INSERT INTO `test_myisam`(`id`, `name`) VALUES (5, 'jack5');
INSERT INTO `test_myisam`(`id`, `name`) VALUES (4, 'jack4');
INSERT INTO `test_myisam`(`id`, `name`) VALUES (1, 'jack1');
INSERT INTO `test_myisam`(`id`, `name`) VALUES (3, 'jack3');
INSERT INTO `test_myisam`(`id`, `name`) VALUES (2, 'jack2');

 

2、查询结果,select * 的时候,默认按照插入顺序排序:

 

3、如果只查id呢,select id,是按照id默认升序排序的:

 

 

二、如果是innodb引擎:

1、建表语句:


CREATE TABLE test_innodb  (
  id int(11),
  name varchar(10) character set utf8,
  KEY `testIndex` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `test_innodb`(`id`, `name`) VALUES (5, 'jack5');
INSERT INTO `test_innodb`(`id`, `name`) VALUES (4, 'jack4');
INSERT INTO `test_innodb`(`id`, `name`) VALUES (1, 'jack1');
INSERT INTO `test_innodb`(`id`, `name`) VALUES (3, 'jack3');
INSERT INTO `test_innodb`(`id`, `name`) VALUES (2, 'jack2');

 

2、查询结果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值