資料庫sql指南總結
mysql引擎
一。myisam
記憶體中只快取索引,不快取資料;
不支援事務;
只支援表級鎖,支援insert操作和select操作併發進行;
適合讀多寫少的應用,如web;
支援全文索引;
二。innodb(事物資料庫首選)
索引和資料都可以快取到記憶體中;
支援事務;
支援行級鎖,可實現更高的併發度;
支援故障恢復;
支援外來鍵約束;
支援4種不同的事務隔離級別;
表的切分
一。垂直切分:
垂直切分就是要把表按模組劃分到不同資料庫中:乙個架構設計較好的應用系統,其總體功能肯定是由多個功能模組所組成的,而每乙個功能模組所需要的資料對應資料庫中的就是一張表或者多個表。在架構設計中,各個功能模組互相之間的互動點越统
一、越少,系統的耦合度就越低,系統各個模組的維護性及擴充套件性也就越好。這樣的系統,實現資料的垂直切分也就越容易
垂直切分的優缺點:
資料庫的切分簡單明瞭,切分規則明確;
應用程式模組清晰明確,整合容易;
資料維護方便易行,容易定位。 缺點
部分表關聯無法在資料庫級別完成,需要在程式中進行;
對於訪問極其頻繁且資料量超大的表仍然存在效能瓶頸,不一定能滿足要求;
事務處理相對複雜;
切分達到一定程度之後,擴充套件性會受到限制;
過度切分可能會導致系統過於複雜而難以維護。
二水平切分
水平切分可以簡單理解為按照資料行的切分,就是將表中的某些行切分到乙個資料庫,而另外的某些行又可以切分到其他的資料庫中。
水平切分的切分標準可以按照資料範圍分,比如
1-100
萬乙個表,
100萬
-200
萬又是乙個表;也可以按照時間順序來切分,比如一年的資料歸到一張表中等;也可以按照地域範圍來分,比如按照地市來分,每個或多個地市乙個庫等;也可以按照某種計算公式來切分,比較簡單的比如取模的方式,如根據使用者
id進行水平切分,可通過對id被
2取模,然後分別存放在不同的表中,這樣關聯時也非常方便。
水平切分的優缺點:
表關聯基本能夠在資料庫端全部完成;
不會存在某些超大型資料量和高負載的表遇到瓶頸的問題;
應用程式端整體架構改動相對較少;
事務處理相對簡單;
只要切分規則能夠定義好,擴充套件性一般不會受到限制。 缺點
切分規則相對複雜,很難抽象出乙個能滿足整個資料庫的切分規則;
後期的維護難度有所增加,人為手工定位資料較困難。
應用系統各模組耦合度非常高,可能會對後面資料的遷移切分造成一定的困難。
若切分不合理,會造成資料表的冷熱不均現象。
聯合切分的優缺點:
可以充分利用垂直和水平切分各自的優勢而避免各自的缺陷;
讓系統擴充套件性得到最大化提公升。 缺點
資料庫系統架構會比較複雜,維護難度更大;
應用程式架構也更複雜。
資料庫 Sql總結
關係型資料庫 mysql oracle db2 sqlserver 非關係型資料庫 redis mongodb a 關係型資料庫 是指採用了關係模型來組織資料的資料庫。關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個資料組織。優點 可以使用sql語言便捷的運算元據...
Oracle資料庫SQL總結
1oracle時間段的查詢 1.1 場景 根據使用者輸入的時間段過濾出相應記錄。1.2 解決辦法 第一種寫法 sql select from t xjxx xjgl where createdate to date 2011 6 13 yyyy mm dd and createdate to dat...
SQL資料庫總結2
sql 資料庫總結2 vb6.0 資料庫開發經典例項精解 五例項總結 縱觀五例,寫完之後,我發現主要講了一件事,就是 ado的使用,如下圖 圖1 例項 1 1 vb 建立資料庫建立 ado引用 主要用到的 adoconnection 使用和ado recordset 的使用 2 設計一下窗體 3 編...