在Nodejs中使用MySQL數據庫的優異實踐是什么?
一、在Nodejs中使用MySQL數據庫的優異實踐
1. 請一直使用pool,沒有何時。
2. pool在程序初始化的時候創建,無需銷毀,從中抽取實例連接就行,無需關心細節,也無需手動連接和關閉。
3. 推薦使用一個ORM庫,例如 sequelize之類的,很多,包括我們公司自產的 toshihiko,可以簡化掉很多細節
4. 多級連接沒什么需要注意的,主要是通過內網ip連接,做好環境隔離,保證mysql服務的連接數夠用,合理設置每個服務的pool大小。
5. 數據庫設計是門大學問,數據庫優化也是門大學問。
pool程序啟動的時候就建立,全程不需要關閉。一定要考慮并發(僅僅是并發,還不是高并發)下的業務邏輯問題,盡量用樂觀鎖解決問題,樂觀鎖是指 update table set a = new_value where version = old_version 這種類似形式,根據返回的affected rows 判斷是否更新成功。
讀寫操作盡量去用內存 緩存/隊列化處理,給mysql的最平緩的壓力。少用事務。
避免單表 or 單行 同時的讀寫壓力。order by, group by,count(*) 加 join 這種操作大多效率低下,能避開就避開。
可以偶爾的反范式設計,但需考慮如果數據不一致了怎么辦,plan b能同步回來就問題不大。緩存,緩存,還是緩存。用內存換mysql壓力 內存可以LRU沒那么容易爆 mysql壓力大了很容易進入雪崩。
延伸閱讀:
二、全文索引
FULLTEXT(全文)索引,僅可用于MyISAM和InnoDB,針對較大的數據,生成全文索引非常的消耗時間和空間。對于文本的大對象,或者較大的CHAR類型的數據,如果使用普通索引,那么匹配文本前幾個字符還是可行的,但是想要匹配文本中間的幾個單詞,那么就要使用LIKE %word%來匹配,這樣需要很長的時間來處理,響應時間會大大增加,這種情況,就可使用時FULLTEXT索引了,在生成FULLTEXT索引時,會為文本生成一份單詞的清單,在索引時及根據這個單詞的清單來索引。FULLTEXT可以在創建表的時候創建,也可以在需要的時候用ALTER或者CREATE INDEX來添加。

相關推薦HOT
更多>>
pythonfor循環是什么
pythonfor循環是什么在做遍歷的時候,對于一些數據的反復循環執行,我們會用到for循環的語句。可以說這是新手入門必學的語句之一,在很多基礎循...詳情>>
2023-11-13 07:46:36
pythoncontextmanager()的轉換
python中contextmanager()的轉換1、說明當發出請求時,requests庫會在將請求實際發送到目標服務器之前準備該請求。請求準備包括像驗證頭信息和...詳情>>
2023-11-13 06:34:35
python使用items()遍歷鍵值對
python使用items()遍歷鍵值對字典可以用來存儲各種方式的信息,所以有很多方式可以通過字典的所有鍵值對、鍵或值。說明1、即使通過字典,鍵值對...詳情>>
2023-11-13 04:24:15
python實例方法中self的作用
python實例方法中self的作用說明1、無論是創建類的構造方法還是實例方法,最少要包含一個參數self。2、通過實例的self參數與對象進行綁定,程序...詳情>>
2023-11-13 03:46:48