簡體   English   中英

哪個更好:單個或多個數據庫連接?

[英]Which is better: single or multiple database connections?

我正在使用帶有MySQL的AngularJS SPApplication創建一個NodeJS作為后端。 事情是我在后端部分做得不好,我想知道一件事。 建立與數據庫的大連接並使用其中的所有信息還是將連接分成較小的連接一次並在不同的視圖上使用是更好的選擇。 這個例子是這樣的。 我有說超級英雄數據庫SPAplication的多個視圖。 呈現單個超級英雄的視圖包含4個標簽-傳記,歷史,權力,敵人。 哪個更好:針對單個超級英雄視圖執行此操作(僅作為示例):

var query = '';
    query += 'SELECT s.id, s.nick_name, s.real_name, s.clean_name, s.alignment, s.gender, s.race, s.history, ';
    query += 'p.id AS power_id, p.name AS power_name, p.description AS power_description, ';
    query += 'b.address, zc.city, zc.state ';
    query += 'FROM superhero s ';
    query += 'INNER JOIN superhero_powers sp ON s.id=sp.superhero_id ';
    query += 'INNER JOIN powers p ON p.id=sp.power_id ';
    query += 'INNER JOIN bases b ON s.base_id=b.id ';
    query += 'INNER JOIN zip_codes zc ON b.zip_id=zc.id ';
    query += 'INNER JOIN superhero_enemies se ON s.id=se.good_sh_id ';
    query += 'INNER JOIN superhero sh_enemy ON sh_enemy.id=se.bad_sh_id ';
    query += 'WHERE s.clean_name="'+req.params.sh_clean_name+'"';

並具有每個選項卡的信息,或將其分為與數據庫和每個選項卡的多個連接,當單擊它以調用連接以獲取信息時,例如

數據庫連接是有限的資源,並且習慣上開發人員將只打開盡可能少的連接數。

傳統上,應用程序定義一些初始預定義大小的連接池。 並且每個請求都將被授予來自此池的連接。 連接完成請求后,它將關閉它,實際上將其返回到池中,並使其他人可以使用它。

在單個請求中,很少有需要到同一個數據庫的多個連接。

應用程序視圖的外觀無關緊要,因為在這種情況下,它可能具有多個選項卡(如您所稱),但是最終您必須通過發出請求的http服務器與數據庫服務器進行通信。 因此,將向該請求授予來自池的連接,並將使用該請求到達數據庫並最終給您一些結果。 同時,您的Web應用程序可能已經發出了另一個異步請求,該請求將以幾乎相同的方式處理,來自池的另一個連接以及所有相同的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM