covering-index

    0热度

    2回答

    我有一个查询在多个表上执行连接。我在表的外键和主键上的聚簇索引上有非聚簇索引。在分析查询计划时,我发现查询优化器正在所有表上选择聚簇索引扫描,或者在某些情况下,将非聚簇索引扫描和键查找组合在一起以获取其他非键列。为了解决这个问题,我在非聚集索引中包含了(覆盖)此查询中所需的非键列。因此,我可以看到非聚集索引搜索/扫描按预期执行。 现在我的问题是,如果我有其他查询需要许多其他非键列是结果集的一部分,

    0热度

    1回答

    如何检查MySQL查询是否利用覆盖索引并仅从该索引获取所需的所有数据?

    1热度

    1回答

    考虑一个表具有以下字段: mysql> DESCRIBE my_table; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-----

    0热度

    2回答

    据我所知,覆盖索引是应包含SELECT语句中所有列的索引。如果是这样,如果我有以下查询: SELECT ActionDate -- Дата мероприятия ,ManagerName -- ФИО менеджера ,City -- Город мероприятия ,Organazer -- Юр.Лицо организатора

    1热度

    4回答

    我已经得到了这个表: CREATE TABLE IF NOT EXISTS `test1_nopart` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `idAccount` int(10) unsigned NOT NULL, `data` mediumint(8) unsigned NOT NULL, `

    2热度

    1回答

    我有一个覆盖索引的表,应该只使用索引来响应查询,根本不检查表。事实上,Postgres确实这样做,如果IN()子句中有1或几个元素。但是,如果IN子句有很多元素,它似乎是在索引上进行搜索,然后进入表格并重新检查条件... 我不明白为什么Postgres会去做。它可以直接从索引提供查询,也可以不提供,如果它(理论上)没有其他要添加的内容,它为什么会进入表格? 表: CREATE TABLE phon

    1热度

    1回答

    我有两个正在比较的表格(NewProducts和OldProducts)。 NewProducts约有68,000条记录,OldProducts约51,000条。我在每个表上使用覆盖索引,但是查询需要20分钟才能执行,所以我没有正确使用它。覆盖指数是否真的适用于多个表格?我究竟做错了什么?谢谢。 这里是我的查询码和指标: $querystring = "SELECT newProducts.Id,

    1热度

    2回答

    我有一个网站有一个活动的饲料,类似于像Facebook这样的社交网站有一个。这是一个“最新的第一个”列表,描述用户采取的行动。在制作中,该表中约有20万个条目。 因为这将是无论如何询问,我会先共享全表结构: CREATE TABLE `karmalog` ( `id` int(11) NOT NULL auto_increment, `guid` char(36) default

    3热度

    2回答

    是否可以使用EF Code First Migrations的CreateIndex语法创建覆盖索引(*请参阅下文了解覆盖索引的含义)。 例如,我可以在手动迁移创建一个简单的指标,像这样: CreateIndex("RelatedProduct", "RelatedId"); 它有一个名为“匿名参数”的最终参数,指定它可以处理任何潜在的供应商支持 - 但它不是清楚我如何确定支持是什么。这是可能

    2热度

    1回答

    我从来没有听说过覆盖索引,只是碰到它们。我读他们this page和它说.. “覆盖索引可以大大加快数据检索,但本身可能是大的,由于额外的按键,它们会减慢数据插入&更新。为了减少这种索引大小,一些系统允许在索引中包含非关键字段非关键字段本身并不是索引排序的一部分,但只包含在叶级别,允许索引尺寸较小的覆盖索引。 所以我的问题是你怎么知道你的系统是否允许在索引中包含非关键字段?