MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Ускорете търсенето на редовни изрази в MongoDB

Една от възможностите би била да съхраните всички варианти, които смятате, че могат да бъдат полезни като елемент от масив — но не съм сигурен дали това може да е възможно!

    {
        "number" : "pl",
        "surface_form" : "skrejjen",
        "surface_forms: [ "skrej", "skre" ],
        "phonetic" : "'skrɛjjɛn",
        "pattern" : "CCCVCCVC"
    }

Вероятно бих предложил да не съхранявате 1000 формуляра на дума с всяка дума, а да обърнете това, за да имате по-малки документи. Колкото по-малки са вашите документи, толкова по-малко MongoDB ще трябва да чете в паметта за всяко търсене (стига условията за търсене да не изискват пълно сканиране, разбира се):

{
    "word": {
        "pos" : "N",
        "lemma" : "skrun",
        "gloss" : "screw",
    },
    "form" : {
        "number" : "sg",
        "surface_form" : "skrun",
        "phonetic" : "ˈskruːn",
        "gender" : "m"
    },
    "source" : "Mayer2013"
}

{
    "word": {
        "pos" : "N",
        "lemma" : "skrun",
        "gloss" : "screw",
    },
    "form" : {
        "number" : "pl",
        "surface_form" : "skrejjen",
        "phonetic" : "'skrɛjjɛn",
        "pattern" : "CCCVCCVC"
    },
    "source" : "Mayer2013"
}

Също така се съмнявам, че MySQL ще се представи по-добре тук с търсения на произволни словоформи, тъй като ще трябва да направи пълно сканиране на таблица, точно както би било MongoDB. Единственото нещо, което би могло да помогне там, е кешът на заявките - но това е нещо, което бихте могли да изградите в своя UI/API за търсене във вашето приложение доста лесно, разбира се.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Производителност на заявки за MongoDB за над 5 милиона записа

  2. Създаване на връзка с чужд ключ в Mongoose

  3. MongoDb Как да групирате по месец и година от низ

  4. Защо тази команда msiexec.exe не работи в powershell?

  5. Mongoengine, извлича само част от MapField