1.现象mysql
往一张中间表中插入几行数据,可是插入的数据没有按照插入的顺序插入。sql
中间表:数据库表多对多关系的时候,须要一张中间表,将它们的关系对应起来。数据库
2.表中结构优化
因为是中间表,没有主键,只有两个表的主键。3d
3.个人尝试调试
去掉全部的事务,以排插事务会帮我重排序的可能,写了一个for循环,for循环里面很简单,只是简单的往数据库里插入数据,单步调试,查看数据库中的变化状况。blog
结果是:数据按for循环的顺序一个添加了,可是确实乱序的。 可是插入后的排序是有规律的,是按照ASCII码字典序排序的。排序
4.缘由索引
这个表加了索引,多是由于没有主键的缘由,插入数据的时候会相似索引的方式,将数据重排序后再插入,按照ASCII码升序排序,和索引同样。 其实这张表加了索引以后就至关于一张索引表了,没有必要去建立一张新的索引表,可能mysql作了这样子的优化。事务
致谢:感谢您的阅读!