Mysql 联接后按顺序索引

Mysql 联接后按顺序索引,mysql,sql,Mysql,Sql,是否有在join之后使用ORDERBY子句索引的情况 在加入之前,按操作排序什么时候进行 在查询(没有子查询)中,在join之后使用索引是否有一个突出的例子 例如,此查询: SELECT * FROM t1 JOIN t2 ON t1.b = t2.b order by t2.c 其中t1长度大于t2。它将连接t1到t2。索引t1.b用于联接。然后我们可以在t2表的orderby的c列上建立索引。然而,这不是我在MySQL中看到的行为。你不能订购你没有的东西。在执行联接之前不能拥有数据,因为联

是否有在join之后使用ORDERBY子句索引的情况

在加入之前,按操作排序什么时候进行

在查询(没有子查询)中,在
join
之后使用索引是否有一个突出的例子

例如,此查询:

SELECT * FROM t1 JOIN t2 ON t1.b = t2.b order by t2.c

其中
t1
长度大于
t2
。它将连接t1到t2。索引
t1.b
用于联接。然后我们可以在
t2
表的
orderby
c
列上建立索引。然而,这不是我在MySQL中看到的行为。

你不能订购你没有的东西。在执行联接之前不能拥有数据,因为联接会影响返回的数据。现在,您的问题的问题是可能存在子查询,这些子查询反过来能够使用自己的
orderby
子句以及其他。是否使用索引的问题完全无关。索引的作用是帮助数据库减少工作量。所以,如果它可以在加入之前或之后使用,那对你来说又有什么关系呢?如果您有实际问题,请发布该问题,而不是“假设”情况。好的,您可以给出一个示例,说明在没有子查询的联接查询之后使用索引的情况吗?例如,此查询:
code
SELECT*fromt1jointt2ont1.b=t2.b按t2.c
code
排序,t1大小大于t2。它将连接t2到t1。我们有用于连接的索引t1(b)。我们可以在c列上为t2表上的order by创建索引,但mysql不使用它。如果索引的基数太低,mysql将不使用索引。这意味着MySQL将决定在没有索引的情况下更快地完成任务。基本上,您担心的是MySQL没有使用索引——这对于低行数和低基数的索引来说是很正常的。真的没什么好担心的。然而,如果没有进一步的信息——表格模式、执行计划——剩下的只是推测。