1 回答
TA貢獻1812條經驗 獲得超5個贊
你提出了太多的數據庫請求!使用來自其他表? id_Headword ?(或其他)的索引創建視圖或執行由連接查詢組成的選擇查詢。喜歡 :
SELECT L.*, LS.writing_1 AS ls_writing_1, LS.writing_2 AS ls_writing_2,
LSG.meaning_ITA AS lsg_meaning_ITA, LSG.meaning_EN AS lsg_meaning_EN
FROM Lemma AS L
INNER JOIN LemmaScrittura AS LS
ON(L.id = LS.id_Headword)
INNER JOIN LemmaSignificato AS LSG
ON (L.id = LSG.id_Headword)
您可以用 ? as ? 重命名其他數據表的列。然后你就有了一個有組織的代碼和結果。
如果您想將所有行合二為一,請這樣做(第一個值;第二個值;第三個值;等等):
SELECT L.*,
GROUP_CONCAT(DISTINCT LS.writing_1 SEPARATOR ";") AS ls_writing_1,
GROUP_CONCAT(DISTINCT LS.writing_2 SEPARATOR ";") AS ls_writing_2,
GROUP_CONCAT(DISTINCT LSG.meaning_ITA SEPARATOR ";") AS lsg_meaning_ITA,
GROUP_CONCAT(DISTINCT LSG.meaning_EN SEPARATOR ";") AS lsg_meaning_EN
FROM Lemma AS L
LEFT JOIN LemmaScrittura AS LS
ON(L.id = LS.id_Headword)LEFT JOIN LemmaSignificato AS LSG
ON (L.id = LSG.id_Headword)
然后在 PHP 中,您可以輕松恢復所有內容,您只需在它們之間交叉數據即可。(第一行;第二行;等等)
為了降低速度,您可以將所有數據保存在“json”文件中。并將文件數據直接發送到您的 API。然后,如果有任何更改,您將更新文件(使用按鈕、cron 等)。
服務器和本地主機之間可能減慢速度的區別在于帶寬以及用戶請求的數量以及等待服務器響應的數量。所以在本地,它要快得多。
- 1 回答
- 0 關注
- 159 瀏覽
添加回答
舉報
