我剛剛在MySQL中編寫函數的想法,我可以通過子查詢來輸出該子查詢的JSON表示。是否可以編寫輸出JSON的SQL函數?
我有相當多的數據,我經常從MySQL中獲取,然後將其轉換爲JSON API輸出。編寫一個MySQL函數,在剛剛返回JSON的SQL服務器上執行此操作可能會提高速度嗎?
我的想象:
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}]
可能嗎?如果是的話,我可以開始的任何線索?
這是可能的,但將難以有任何的速度增加。另外,對於大的結果集,你可以命中某些限制,比如'group_concat_max_len'和'max_allowed_packet',這會阻止返回值。他們並不總是可以在共享主機等上進行更改。 – Quassnoi
我不確定通常如何將數據從MySQL發送到客戶端作爲對查詢的響應。如果MySQL主機不是本地的,這可能會減少帶寬嗎? – Hubro
'MySQL'的二進制協議比基於字符的'JSON'更密集。另外,你可以使用'MYSQL_CLIENT_COMPRESS'來壓縮它(如果你需要的話)。 – Quassnoi