Поиск по шаблону и реальные найденные товары

mongodb126-regex-index-prefix

УсловиеПервые пять ID по порядкуnReturned в explain
Префикс12, 24, 36, 48, 605
Вхождение1, 12, 13, 24, 255

Журнал и промежуточные данные

seed_documents
120
actual_explain
{
    "Префикс": {
        "explainVersion": "1",
        "queryPlanner": {
            "namespace": "php_manual_lab.mongodb126_regex_a43952312efc187b",
            "parsedQuery": {
                "sku": {
                    "$regex": "^CUP-"
                }
            },
            "indexFilterSet": false,
            "queryHash": "43FAB217",
            "planCacheShapeHash": "43FAB217",
            "planCacheKey": "E5E5B78A",
            "optimizationTimeMillis": 0,
            "maxIndexedOrSolutionsReached": false,
            "maxIndexedAndSolutionsReached": false,
            "maxScansToExplodeReached": false,
            "prunedSimilarIndexes": false,
            "winningPlan": {
                "isCached": false,
                "stage": "PROJECTION_COVERED",
                "transformBy": {
                    "_id": 1,
                    "sku": 1
                },
                "inputStage": {
                    "stage": "SORT",
                    "sortPattern": {
                        "_id": 1
                    },
                    "memLimit": 104857600,
                    "limitAmount": 5,
                    "type": "default",
                    "inputStage": {
                        "stage": "IXSCAN",
                        "keyPattern": {
                            "sku": 1,
                            "_id": 1
                        },
                        "indexName": "sku_lookup",
                        "isMultiKey": false,
                        "multiKeyPaths": {
                            "sku": [],
                            "_id": []
                        },
                        "isUnique": false,
                        "isSparse": false,
                        "isPartial": false,
                        "indexVersion": 2,
                        "direction": "forward",
                        "indexBounds": {
                            "sku": [
                                "[\"CUP-\", \"CUP.\")",
                                "[/^CUP-/, /^CUP-/]"
                            ],
                            "_id": [
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            },
            "rejectedPlans": [
                {
                    "isCached": false,
                    "stage": "LIMIT",
                    "limitAmount": 5,
                    "inputStage": {
                        "stage": "PROJECTION_SIMPLE",
                        "transformBy": {
                            "_id": 1,
                            "sku": 1
                        },
                        "inputStage": {
                            "stage": "FETCH",
                            "filter": {
                                "sku": {
                                    "$regex": "^CUP-"
                                }
                            },
                            "inputStage": {
                                "stage": "IXSCAN",
                                "keyPattern": {
                                    "_id": 1
                                },
                                "indexName": "_id_",
                                "isMultiKey": false,
                                "isUnique": true,
                                "isSparse": false,
                                "isPartial": false,
                                "indexVersion": 2,
                                "direction": "forward",
                                "indexBounds": {
                                    "_id": [
                                        "[MinKey, MaxKey]"
                                    ]
                                }
                            }
                        }
                    }
                }
            ]
        },
        "executionStats": {
            "executionSuccess": true,
            "nReturned": 5,
            "executionTimeMillis": 0,
            "totalKeysExamined": 11,
            "totalDocsExamined": 0,
            "executionStages": {
                "isCached": false,
                "stage": "PROJECTION_COVERED",
                "nReturned": 5,
                "executionTimeMillisEstimate": 0,
                "works": 18,
                "advanced": 5,
                "needTime": 12,
                "needYield": 0,
                "saveState": 0,
                "restoreState": 0,
                "isEOF": 1,
                "transformBy": {
                    "_id": 1,
                    "sku": 1
                },
                "inputStage": {
                    "stage": "SORT",
                    "nReturned": 5,
                    "executionTimeMillisEstimate": 0,
                    "works": 18,
                    "advanced": 5,
                    "needTime": 12,
                    "needYield": 0,
                    "saveState": 0,
                    "restoreState": 0,
                    "isEOF": 1,
                    "sortPattern": {
                        "_id": 1
                    },
                    "memLimit": 104857600,
                    "limitAmount": 5,
                    "type": "default",
                    "totalDataSizeSorted": 365,
                    "usedDisk": false,
                    "spills": 0,
                    "spilledDataStorageSize": 0,
                    "inputStage": {
                        "stage": "IXSCAN",
                        "nReturned": 10,
                        "executionTimeMillisEstimate": 0,
                        "works": 12,
                        "advanced": 10,
                        "needTime": 1,
                        "needYield": 0,
                        "saveState": 0,
                        "restoreState": 0,
                        "isEOF": 1,
                        "keyPattern": {
                            "sku": 1,
                            "_id": 1
                        },
                        "indexName": "sku_lookup",
                        "isMultiKey": false,
                        "multiKeyPaths": {
                            "sku": [],
                            "_id": []
                        },
                        "isUnique": false,
                        "isSparse": false,
                        "isPartial": false,
                        "indexVersion": 2,
                        "direction": "forward",
                        "indexBounds": {
                            "sku": [
                                "[\"CUP-\", \"CUP.\")",
                                "[/^CUP-/, /^CUP-/]"
                            ],
                            "_id": [
                                "[MinKey, MaxKey]"
                            ]
                        },
                        "keysExamined": 11,
                        "seeks": 2,
                        "dupsTested": 0,
                        "dupsDropped": 0
                    }
                }
            }
        },
        "queryShapeHash": "274DFA0B05EF408AC8F47F070C707EE225E8FA63494D53D7495CACED5A3B5675",
        "command": {
            "find": "mongodb126_regex_a43952312efc187b",
            "filter": {
                "sku": {
                    "$regex": "^CUP-",
                    "$options": ""
                }
            },
            "projection": {
                "_id": 1,
                "sku": 1
            },
            "sort": {
                "_id": 1
            },
            "limit": 5,
            "maxTimeMS": 1000,
            "$db": "php_manual_lab"
        },
        "serverInfo": {
            "host": "AlexxNekPR",
            "port": 27075,
            "version": "8.0.34",
            "gitVersion": "51db4515a6597aedcf6188ee4e48a27e65b065ae"
        },
        "serverParameters": {
            "internalQueryFacetBufferSizeBytes": 104857600,
            "internalQueryFacetMaxOutputDocSizeBytes": 104857600,
            "internalLookupStageIntermediateDocumentMaxSizeBytes": 104857600,
            "internalDocumentSourceGroupMaxMemoryBytes": 104857600,
            "internalQueryMaxBlockingSortMemoryUsageBytes": 104857600,
            "internalQueryProhibitBlockingMergeOnMongoS": 0,
            "internalQueryMaxAddToSetBytes": 104857600,
            "internalDocumentSourceSetWindowFieldsMaxMemoryBytes": 104857600,
            "internalQueryFrameworkControl": "trySbeRestricted",
            "internalQueryPlannerIgnoreIndexWithCollationForRegex": 1
        },
        "ok": 1
    },
    "Hint: применимость": {
        "explainVersion": "1",
        "queryPlanner": {
            "namespace": "php_manual_lab.mongodb126_regex_a43952312efc187b",
            "parsedQuery": {
                "sku": {
                    "$regex": "^CUP-"
                }
            },
            "indexFilterSet": false,
            "queryHash": "43FAB217",
            "planCacheShapeHash": "43FAB217",
            "planCacheKey": "E5E5B78A",
            "optimizationTimeMillis": 0,
            "maxIndexedOrSolutionsReached": false,
            "maxIndexedAndSolutionsReached": false,
            "maxScansToExplodeReached": false,
            "prunedSimilarIndexes": false,
            "winningPlan": {
                "isCached": false,
                "stage": "PROJECTION_COVERED",
                "transformBy": {
                    "_id": 1,
                    "sku": 1
                },
                "inputStage": {
                    "stage": "SORT",
                    "sortPattern": {
                        "_id": 1
                    },
                    "memLimit": 104857600,
                    "limitAmount": 5,
                    "type": "default",
                    "inputStage": {
                        "stage": "IXSCAN",
                        "keyPattern": {
                            "sku": 1,
                            "_id": 1
                        },
                        "indexName": "sku_lookup",
                        "isMultiKey": false,
                        "multiKeyPaths": {
                            "sku": [],
                            "_id": []
                        },
                        "isUnique": false,
                        "isSparse": false,
                        "isPartial": false,
                        "indexVersion": 2,
                        "direction": "forward",
                        "indexBounds": {
                            "sku": [
                                "[\"CUP-\", \"CUP.\")",
                                "[/^CUP-/, /^CUP-/]"
                            ],
                            "_id": [
                                "[MinKey, MaxKey]"
                            ]
                        }
                    }
                }
            },
            "rejectedPlans": []
        },
        "executionStats": {
            "executionSuccess": true,
            "nReturned": 5,
            "executionTimeMillis": 0,
            "totalKeysExamined": 11,
            "totalDocsExamined": 0,
            "executionStages": {
                "isCached": false,
                "stage": "PROJECTION_COVERED",
                "nReturned": 5,
                "executionTimeMillisEstimate": 0,
                "works": 18,
                "advanced": 5,
                "needTime": 12,
                "needYield": 0,
                "saveState": 0,
                "restoreState": 0,
                "isEOF": 1,
                "transformBy": {
                    "_id": 1,
                    "sku": 1
                },
                "inputStage": {
                    "stage": "SORT",
                    "nReturned": 5,
                    "executionTimeMillisEstimate": 0,
                    "works": 18,
                    "advanced": 5,
                    "needTime": 12,
                    "needYield": 0,
                    "saveState": 0,
                    "restoreState": 0,
                    "isEOF": 1,
                    "sortPattern": {
                        "_id": 1
                    },
                    "memLimit": 104857600,
                    "limitAmount": 5,
                    "type": "default",
                    "totalDataSizeSorted": 365,
                    "usedDisk": false,
                    "spills": 0,
                    "spilledDataStorageSize": 0,
                    "inputStage": {
                        "stage": "IXSCAN",
                        "nReturned": 10,
                        "executionTimeMillisEstimate": 0,
                        "works": 12,
                        "advanced": 10,
                        "needTime": 1,
                        "needYield": 0,
                        "saveState": 0,
                        "restoreState": 0,
                        "isEOF": 1,
                        "keyPattern": {
                            "sku": 1,
                            "_id": 1
                        },
                        "indexName": "sku_lookup",
                        "isMultiKey": false,
                        "multiKeyPaths": {
                            "sku": [],
                            "_id": []
                        },
                        "isUnique": false,
                        "isSparse": false,
                        "isPartial": false,
                        "indexVersion": 2,
                        "direction": "forward",
                        "indexBounds": {
                            "sku": [
                                "[\"CUP-\", \"CUP.\")",
                                "[/^CUP-/, /^CUP-/]"
                            ],
                            "_id": [
                                "[MinKey, MaxKey]"
                            ]
                        },
                        "keysExamined": 11,
                        "seeks": 2,
                        "dupsTested": 0,
                        "dupsDropped": 0
                    }
                }
            }
        },
        "queryShapeHash": "274DFA0B05EF408AC8F47F070C707EE225E8FA63494D53D7495CACED5A3B5675",
        "command": {
            "find": "mongodb126_regex_a43952312efc187b",
            "filter": {
                "sku": {
                    "$regex": "^CUP-",
                    "$options": ""
                }
            },
            "projection": {
                "_id": 1,
                "sku": 1
            },
            "sort": {
                "_id": 1
            },
            "limit": 5,
            "maxTimeMS": 1000,
            "hint": "sku_lookup",
            "$db": "php_manual_lab"
        },
        "serverInfo": {
            "host": "AlexxNekPR",
            "port": 27075,
            "version": "8.0.34",
            "gitVersion": "51db4515a6597aedcf6188ee4e48a27e65b065ae"
        },
        "serverParameters": {
            "internalQueryFacetBufferSizeBytes": 104857600,
            "internalQueryFacetMaxOutputDocSizeBytes": 104857600,
            "internalLookupStageIntermediateDocumentMaxSizeBytes": 104857600,
            "internalDocumentSourceGroupMaxMemoryBytes": 104857600,
            "internalQueryMaxBlockingSortMemoryUsageBytes": 104857600,
            "internalQueryProhibitBlockingMergeOnMongoS": 0,
            "internalQueryMaxAddToSetBytes": 104857600,
            "internalDocumentSourceSetWindowFieldsMaxMemoryBytes": 104857600,
            "internalQueryFrameworkControl": "trySbeRestricted",
            "internalQueryPlannerIgnoreIndexWithCollationForRegex": 1
        },
        "ok": 1
    },
    "Вхождение": {
        "explainVersion": "1",
        "queryPlanner": {
            "namespace": "php_manual_lab.mongodb126_regex_a43952312efc187b",
            "parsedQuery": {
                "sku": {
                    "$regex": "CUP-"
                }
            },
            "indexFilterSet": false,
            "queryHash": "43FAB217",
            "planCacheShapeHash": "43FAB217",
            "planCacheKey": "E5E5B78A",
            "optimizationTimeMillis": 0,
            "maxIndexedOrSolutionsReached": false,
            "maxIndexedAndSolutionsReached": false,
            "maxScansToExplodeReached": false,
            "prunedSimilarIndexes": false,
            "winningPlan": {
                "isCached": false,
                "stage": "LIMIT",
                "limitAmount": 5,
                "inputStage": {
                    "stage": "PROJECTION_SIMPLE",
                    "transformBy": {
                        "_id": 1,
                        "sku": 1
                    },
                    "inputStage": {
                        "stage": "FETCH",
                        "filter": {
                            "sku": {
                                "$regex": "CUP-"
                            }
                        },
                        "inputStage": {
                            "stage": "IXSCAN",
                            "keyPattern": {
                                "_id": 1
                            },
                            "indexName": "_id_",
                            "isMultiKey": false,
                            "isUnique": true,
                            "isSparse": false,
                            "isPartial": false,
                            "indexVersion": 2,
                            "direction": "forward",
                            "indexBounds": {
                                "_id": [
                                    "[MinKey, MaxKey]"
                                ]
                            }
                        }
                    }
                }
            },
            "rejectedPlans": [
                {
                    "isCached": false,
                    "stage": "PROJECTION_COVERED",
                    "transformBy": {
                        "_id": 1,
                        "sku": 1
                    },
                    "inputStage": {
                        "stage": "SORT",
                        "sortPattern": {
                            "_id": 1
                        },
                        "memLimit": 104857600,
                        "limitAmount": 5,
                        "type": "default",
                        "inputStage": {
                            "stage": "IXSCAN",
                            "filter": {
                                "sku": {
                                    "$regex": "CUP-"
                                }
                            },
                            "keyPattern": {
                                "sku": 1,
                                "_id": 1
                            },
                            "indexName": "sku_lookup",
                            "isMultiKey": false,
                            "multiKeyPaths": {
                                "sku": [],
                                "_id": []
                            },
                            "isUnique": false,
                            "isSparse": false,
                            "isPartial": false,
                            "indexVersion": 2,
                            "direction": "forward",
                            "indexBounds": {
                                "sku": [
                                    "[\"\", {})",
                                    "[/CUP-/, /CUP-/]"
                                ],
                                "_id": [
                                    "[MinKey, MaxKey]"
                                ]
                            }
                        }
                    }
                }
            ]
        },
        "executionStats": {
            "executionSuccess": true,
            "nReturned": 5,
            "executionTimeMillis": 0,
            "totalKeysExamined": 25,
            "totalDocsExamined": 25,
            "executionStages": {
                "isCached": false,
                "stage": "LIMIT",
                "nReturned": 5,
                "executionTimeMillisEstimate": 0,
                "works": 26,
                "advanced": 5,
                "needTime": 20,
                "needYield": 0,
                "saveState": 0,
                "restoreState": 0,
                "isEOF": 1,
                "limitAmount": 5,
                "inputStage": {
                    "stage": "PROJECTION_SIMPLE",
                    "nReturned": 5,
                    "executionTimeMillisEstimate": 0,
                    "works": 25,
                    "advanced": 5,
                    "needTime": 20,
                    "needYield": 0,
                    "saveState": 0,
                    "restoreState": 0,
                    "isEOF": 0,
                    "transformBy": {
                        "_id": 1,
                        "sku": 1
                    },
                    "inputStage": {
                        "stage": "FETCH",
                        "filter": {
                            "sku": {
                                "$regex": "CUP-"
                            }
                        },
                        "nReturned": 5,
                        "executionTimeMillisEstimate": 0,
                        "works": 25,
                        "advanced": 5,
                        "needTime": 20,
                        "needYield": 0,
                        "saveState": 0,
                        "restoreState": 0,
                        "isEOF": 0,
                        "docsExamined": 25,
                        "alreadyHasObj": 0,
                        "inputStage": {
                            "stage": "IXSCAN",
                            "nReturned": 25,
                            "executionTimeMillisEstimate": 0,
                            "works": 25,
                            "advanced": 25,
                            "needTime": 0,
                            "needYield": 0,
                            "saveState": 0,
                            "restoreState": 0,
                            "isEOF": 0,
                            "keyPattern": {
                                "_id": 1
                            },
                            "indexName": "_id_",
                            "isMultiKey": false,
                            "isUnique": true,
                            "isSparse": false,
                            "isPartial": false,
                            "indexVersion": 2,
                            "direction": "forward",
                            "indexBounds": {
                                "_id": [
                                    "[MinKey, MaxKey]"
                                ]
                            },
                            "keysExamined": 25,
                            "seeks": 1,
                            "dupsTested": 0,
                            "dupsDropped": 0
                        }
                    }
                }
            }
        },
        "queryShapeHash": "274DFA0B05EF408AC8F47F070C707EE225E8FA63494D53D7495CACED5A3B5675",
        "command": {
            "find": "mongodb126_regex_a43952312efc187b",
            "filter": {
                "sku": {
                    "$regex": "CUP-",
                    "$options": ""
                }
            },
            "projection": {
                "_id": 1,
                "sku": 1
            },
            "sort": {
                "_id": 1
            },
            "limit": 5,
            "maxTimeMS": 1000,
            "$db": "php_manual_lab"
        },
        "serverInfo": {
            "host": "AlexxNekPR",
            "port": 27075,
            "version": "8.0.34",
            "gitVersion": "51db4515a6597aedcf6188ee4e48a27e65b065ae"
        },
        "serverParameters": {
            "internalQueryFacetBufferSizeBytes": 104857600,
            "internalQueryFacetMaxOutputDocSizeBytes": 104857600,
            "internalLookupStageIntermediateDocumentMaxSizeBytes": 104857600,
            "internalDocumentSourceGroupMaxMemoryBytes": 104857600,
            "internalQueryMaxBlockingSortMemoryUsageBytes": 104857600,
            "internalQueryProhibitBlockingMergeOnMongoS": 0,
            "internalQueryMaxAddToSetBytes": 104857600,
            "internalDocumentSourceSetWindowFieldsMaxMemoryBytes": 104857600,
            "internalQueryFrameworkControl": "trySbeRestricted",
            "internalQueryPlannerIgnoreIndexWithCollationForRegex": 1
        },
        "ok": 1
    }
}
policy
"Do not infer guaranteed IXSCAN, no-sort or speed-up from this fixture."

PHP 8.5.11; ext-mongodb 2.5.5; сервер 8.0.34. Шаблоны выполняет MongoDB. План и время диагностические, не универсальная гарантия.