詳解MySQL三項實用開發知識

2022-03-25 16:52:11 字數 1008 閱讀 5028

其實專案應用的瓶頸還是在db端,在只有少量資料及極少併發的情況下,並不需要多少的技巧就可以得到我們想要的結果,但是當資料量達到一定量級的時 候,程式的每乙個細節,資料庫的設計都會影響到系統的效能。這裡就資料庫開發及優化的話題和大家做個討論和分析,也請大家完善,這裡就以下幾個話題,我先 發表自己的見解。

1.儲存引擎的選擇

2.索引的設計及使用

3.大批量插入時sql語句的優化

儲存引擎的選擇

1. myisam不支援事務,不支援外來鍵,優點是訪問速度高,批量插入速度快。假設大量的操作是select、insert,建議採用該儲存引擎。但是在我的實際應用中,出現過批量插入過於頻繁的時候,當資料量到達一定級別,出現表損壞的情況。

2. innodb支援事務處理,但是相對於前者,處理效率低一些,並且其索引及資料也更占用磁碟空間。在儲存一些關鍵資料,並需要對其進行事務操作的時候,我們可以選擇innodb,當然,我認為他不應該是訪問量太大的。

索引的設計及使用

沒有索引的表是恐怖的,除非裡頭沒多少資料,但是怎麼設計索引是合理的?恐怕不是所有人都明白,這裡簡要分析下索引的設計及使用。

1. 索引通常是設定where字句中的列,如果你設定select後的列,這是沒有任何意義的。當然你需要對某列進行排序,order by後的列也是可以建成索引的。

2. 使用唯一索引,主鍵就是最好的例子,假設你建的索引列,大量都是重複的,例如:性別,那麼這樣的索引並不會加快搜尋速度。至於為什麼,請大家自行了解索引的工作原理。

3. 只要有可能,就要盡量限定索引的長度,例如索引列為 char(100),在其前10個字元大部分都是唯一的,請設定索引的長度為10,使用短索引可以加快查詢速度,並節省硬碟空間。

4. 索引的左字首特性,聯合索引實質上也是建立了多個的索引,那麼是建立聯合索引好還是分別建多個索引好呢?顯然前者更好,利用左字首特性,只要聯合索引的最左的列被用到,那麼索引都會被使用。

5. 當然,最後要說的是,不要過度使用索引,索引越多,插入的速度越慢,尤其到資料量龐大時,同時,大量的索引將耗費很多硬碟空間,造成不必要的浪費。

QT開發(三) 專案實戰 計算器,打包發布軟體

這次我們來做乙個小案例,這個案例算是比較有特色的就是計算器了,我們採用mvc的方式來實現 效果還是比較滿意的 實際上算了一下 大小然後再ui中可以設定指定的大小,就不會變形了,因為我們這個也不是主window,而是乙個dialog 我們先來說下我們使用的mvc架構,實際上,我們預設的ui檔案,他就是...

專案管理學習筆記三 專案管理一般知識

一 專案與專案管理 1 專案是一項有待完成的任務,且有特定的環境和要求。2 在一定的組織機構內,利用有限資源 人力 物力 財力等 在規定的時間內完成任務。3 任務要滿足一定的效能 質量 熟練 技術指標要求。專案管理就是把各種知識 技能 手段和技術應用於專案活動之中,以達到專案的要求。專案管理是通過應...

專案管理學習筆記三 專案管理一般知識

一 專案與專案管理 1 專案是一項有待完成的任務,且有特定的環境和要求。2 在一定的組織機構內,利用有限資源 人力 物力 財力等 在規定的時間內完成任務。3 任務要滿足一定的效能 質量 熟練 技術指標要求。專案管理就是把各種知識 技能 手段和技術應用於專案活動之中,以達到專案的要求。專案管理是通過應...