關於資料庫

2021-09-24 18:07:18 字數 1084 閱讀 4023

1.mysql有哪兩個主要的儲存引擎 區別呢?

2.儲存過程與儲存函式的區別?

3.資料庫的優化 羅列一些

三.資料庫優化補充

4.快取優化 [以mysql為例]

-資料庫自身查詢快取 my.ini:query_cache_type/query_cache_size 查詢快取命中 show status like'%qcache%'

-借助orm框架的一級快取/二級快取

-借助spring cache+redis做應用級快取

三.資料庫優化補充

4.快取優化 [以mysql為例]

-資料庫自身查詢快取 my.ini:query_cache_type/query_cache_size 查詢快取命中 show status like'%qcache%'

-借助orm框架的一級快取/二級快取

-借助spring cache+redis做應用級快取

三.資料庫優化

1.sql語句的優化

-不用*號 用欄位名

-多個where條件的先後順序調整

-模糊查詢盡量用全文搜尋框架solr/elastic等 而不是like 一定要用like時 注意盡量避免兩邊%萬用字元 實在避免不了兩邊%的 還可以考慮position函式

或locatiotion函式

-子查詢時 內錶較小用in 外表較小用exists

2.庫表結構優化

-合理建立索引

-合理設定冗餘字段 減少聯表

-合理進行分庫分表 讀寫分離等等

3.硬體優化

-如固態硬碟裝資料庫

-如硬碟陣列增大資料io

二.儲存過程與儲存函式的區別?  

1.儲存過程無返回 用輸出引數變通 自定義函式有返回

2.儲存過程的職責是業務邏輯 是部分代替程式的service層 呼叫時用call語句

-而自定義函式是系統函式sum/max/min/...等的補充 功能針對性強 用sql語句呼叫

3.儲存過程常用於對資料庫做crud及邏輯計算等各種混合操作

-而自定義函式一般只用於讀值計算 不用於寫表

-並不是說自定義函式絕對不能寫表 而是一般不這麼用

關於資料庫

在dao檔案下 第一步 public static void main string args 定義四個私有的全域性靜態變數 第二步 1.以增加一條新聞為例 增加一條新聞 param news return public boolean insertnews news news ps.close c...

關於資料庫

一 資料庫的基本操作 建立 creat database 資料庫名 避免重複資料庫 if not exists 資料庫名 檢視建庫語句 show creat database 資料庫名 查詢所有資料庫 show databases 使用 use 資料庫名 刪除資料庫 drop database 資料...

關於資料庫

innodb 邏輯儲存結構圖 從innodb 儲存引擎的邏輯儲存結構看,所有資料都被邏輯地存放在乙個空間中,稱之為表空間 tablespace 表空間又由段 segment 區 extent 頁 page 組成。頁在一些文件中有時候也稱為塊 block 表空間 tablespace 段 segmen...