如果这是一个非常愚蠢的问题,请原谅,但我是MySQL的新手。我有一个相当大的数据库(70 GB)和一个简单的结构(只有一个表),我打算用它来快速检索记录。这一次,我在实际填充表之前使用索引定义了表。这就是我对应该做的事情的理解。., index USING BTREE (myid))
当我这样做的时候,创建了一个索引,但它似乎不起作用,即检索速度很慢。显然,索引没有被使用。这两个过程的索引具有相同的大小,并且在“解释mytable”视图中显示完全相同。唯一的区别是,只有
有关force索引有许多类似的问题,但我的问题有所不同,因为我在本地dev服务器上成功地使用了索引,但在生产服务器上不能使用。但是,如果我删除键upload_id或只添加IGNORE INDEX (upload_id),它将使用“for_where”键和“使用索引条件”,查询只需1,5秒。它总是说“使用</e
示例- SELECT * FROM table_name FORCE INDEX (index_list) WHERE condition;
在不使用强制索引的情况下,mysql的查询优化器决定可以在给定查询中使用的索引的最佳候选者但是,如果它发现它仍然必须扫描大部分行,那么它将跳过索引,继续进行完全扫描。因此,它可能使用也可能不使用任何索引。因此,假设查询优化器有一个更好的索引候选,它可以<e