<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術干貨  >  在Nodejs中使用MySQL數據庫的優異實踐是什么?

    在Nodejs中使用MySQL數據庫的優異實踐是什么?

    來源:千鋒教育
    發布人:xqq
    時間: 2023-10-18 13:44:09

    一、在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來添加。

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    python實現WSGI的框架

    2023-11-13

    python打開文本文件有哪些方法?

    2023-11-13

    python使用loguru操作日志

    2023-11-13

    最新文章NEW

    python-=是什么意思

    2023-11-13

    pythonre是什么?

    2023-11-13

    python列表追加元素出錯的解決

    2023-11-13

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>