Ho appena avuto l'idea di scrivere una funzione in MySQL che possa passare ad una subquery per generare la rappresentazione JSON di quella sottoquery.È possibile scrivere una funzione SQL che emette JSON?
Ho un sacco di dati che prelevo spesso da MySQL, quindi lo converto in JSON per l'output dell'API. Potrebbe essere forse un aumento di velocità scrivere una funzione MySQL per farlo sul server SQL che restituisce solo il JSON?
La mia fantasia:
query('SELECT * FROM people');
// Output:
// +----+--------+-----+
// | id | name | Age |
// +----+--------+-----+
// | 1 | Molly | 24 |
// | 2 | Edward | 28 |
// +----+--------+-----+
query('JSON(SELECT * FROM people)');
// Output:
// [{"id":1,"name":"Molly","Age":24},{"id":2,"name":"Edward","Age":28}]
possibile? Se sì, qualche indizio su come posso iniziare?
E 'possibile, ma difficilmente sarà alcun aumento della velocità. Inoltre, per set di risultati di grandi dimensioni, puoi raggiungere determinati limiti come 'group_concat_max_len' e' max_allowed_packet' che impediscono il ritorno del valore. Non è sempre possibile modificare host in hosting ecc. – Quassnoi
Non sono sicuro di come i dati vengano normalmente inviati da MySQL a un client come risposta a una query. Questo forse ridurrebbe la larghezza di banda se l'host MySQL non fosse locale? – Hubro
Il protocollo binario di 'MySQL' è più denso di' JSON' basato sui caratteri. Inoltre, puoi comprimerlo con 'MYSQL_CLIENT_COMPRESS' (se ne hai bisogno). – Quassnoi