MySQL 5.7 are un nou tip de date JSON nativ și un set de funcții SQL pentru a lucra cu acesta. Astăzi vom demonstra câteva exemple simple ale acestor caracteristici utilizând datele SF OpenData.
Nu ratați un alt articol pe această temă - Utilizarea JSON în MySQL.
Importarea datelor
Este important să folosiți date de test de calitate, deoarece este mai ușor să verificați dacă rezultatele interogării sunt corecte. De asemenea, ele au o structură bună, care este importantă atunci când se adaugă indicii.
Setul de date selectat din SF OpenData conține aproximativ 200 de mii de articole. Mai întâi, descărcați-le și importați-le în baza de date.
Fiecare document are următoarea formă și este o bucată de pământ, delimitată de puncte:
În cazul nostru, toți cei 200 de mii de documente au același format, dar nu este în mod necesar ca JSON în MySQL - schemă mai puțin.
Exemple de interogări
Solicitarea 1: Vom găsi un teren pe care o ocupă o stradă numită "Market"
Folosind abrevierea pentru JSON_EXTRACT (->), putem interoga coloanele JSON într-un mod convenabil. Sintaxa „$ .properties.STREET“ decât ceea ce este similar cu selectoare CSS, care sunt utilizate în jQuery. Pentru a afla mai multe despre sintaxa interogărilor JSON, consultați documentația
Solicitare 2: găsiți toate parcelele în care strada nu este listată:
Deoarece JSON în MySQL nu are schema, ea găsește toate documentele care nu au structura necesară. În acest exemplu, vom vedea că proprietatea toate documentele specificate $ .properties.STREET, astfel încât interogarea returnează un rezultat nul.
Compararea tipurilor JSON și TEXT
În acest exemplu, vom executa o interogare care va procesa toate cele 200.000 de documente JSON. Acesta va fi un test de performanță mic, dar fără a folosi indicii.
Ce am făcut aici:
- Pentru simplitate, suntem convinși că în ambele exemple datele sunt stocate în memorie.
- Furktsii de a lucra cu JSON, inclusiv alias (->) pentru json_extract () lucrează la fel ca și tipul de date pentru JSON și TEXT / BLOB / tipuri VARCHAR. Acest lucru este foarte util pentru utilizatorii care au făcut upgrade la MySQL 5.7, dar stochează deja date în JSON.
- Vedem că tipul JSON este de aproximativ 10 ori mai rapid decât tipul TEXT - 1.25 secunde față de 12.85. Acest lucru se datorează faptului că tipul de JSON nativ nu necesită parsarea sau verificarea datelor și este posibilă construirea eficientă a interogărilor împotriva documentelor JSON.
Suportul pentru documentele JSON a fost deja adăugat la constructorul de interogări al lui Laravel. Și în viitor sprijinul va apărea cel mai probabil în alte cadre.
Dacă nu găsiți răspunsuri la întrebările dvs., puteți consulta un alt articol - Utilizarea JSON în MySQL.