Andrise programmeerimisalane WIKI
Indeksid
Google App Engine andmebaasis tehakse kõik andmete päringud indeksite alusel, seega tuleb kõik päringud eelnevalt indekseerida. Lihtsamad indeksid lisab Google App Engine ise, see tähendab, et Google App Engine järjestab kõik lihtväljad (näiteks numbrite puhul järjekorras, suuremad eespool jne).
Kui nüüd teha päring, kus päringutingimuseks on vaid ühe välja väärtus, siis selle jaoks on indeksid juba olemas ning ise midagi teha pole vaja. Kui aga päritakse juba kahe erineva välja alusel, siis tuleb selle päringu jaoks indeks index.yaml failis ise defineerida.
- kind: Tekstid
properties:
- name: kasutaja
- name: aeg
direction: desc
Näites olev indeks tähendab, et lisaks lihtindeksitele on kõik väljad indekseeritud ka kombinatsiooniga kasutaja + aeg, kusjuures väli aeg on seatud tagurpidi. Antud indeksi alusel saaks teha näiteks järgneva päringu:
SELECT * FROM Tekstid WHERE kasutaja = :1 ORDER BY aeg DESC
Indeksite tekitamine on suhteliselt lihtne - juhul kui rakendus jookseb kohalikus arendusserveris (SDK käsklus „Run“), siis uuendab Google App Engine index.yaml faili vastavalt päringutele ise. Kui mingi vajalik indeks on puudu, lisatakse see indeksite faili lõppu.
Kui rakendus jookseb Google App Engine serveris ja indeks on puudu, tõstetakse päringu sooritamisel BadRequestError veateade. Veateates aga on ära toodud vajalik indeksi struktuur ning selle saab otse veateatest index.yaml faili ümber kopeerida. Järgmisel programmi uuendusel saab andmebaas vajaliku info index.yaml failist kätte ning on varem katki olnud päringut muutub käivitatavaks.
Meeles tasub siiski pidada, et programmi uuendamisel serveris ei rakendu lisatud indeksid kohe, vaid nende tekitamine lisatakse andmebaasi tegevuste järjekorda. Indeksite loomise staatust saab jälgida rakenduse administreerimise lehelt.
Käidud rada: • django_filtrid • bigtable_query • django_muutujad • django_tsueklid • registreerimine • python_tutvustus • django_tutvustus • bigtable_indeksid