数据库中间表插入乱序

1.现象

  往一张中间表中插入几行数据,但是插入的数据没有按照插入的顺序插入。

  中间表:数据库表多对多关系的时候,需要一张中间表,将它们的关系对应起来。

2.表中结构

  由于是中间表,没有主键,只有两个表的主键。

3.我的尝试

  去掉所有的事务,以排插事务会帮我重排序的可能,写了一个for循环,for循环里面很简单,只是简单的往数据库里插入数据,单步调试,查看数据库中的变化情况。

  结果是:数据按for循环的顺序一个添加了,但是确实乱序的。  但是插入后的排序是有规律的,是按照ASCII码字典序排序的。

4.原因

  这个表加了索引,可能是因为没有主键的原因,插入数据的时候会类似索引的方式,将数据重排序后再插入,按照ASCII码升序排序,和索引一样。  其实这张表加了索引之后就相当于一张索引表了,没有必要去创建一张新的索引表,可能mysql做了这样子的优化。

  致谢:感谢您的阅读!

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值