資料庫優化(理論篇)

2022-07-26 18:57:12 字數 2437 閱讀 1524

資料庫事務的四個特性:acid

1.原子性

2.一致性

3.隔離性

4.永續性

1,關係型資料庫;是建立在關聯式資料庫模型基礎上的資料庫,借助於關係代數等概念和方法來處理資料庫中的資料,同時也是乙個被組織成一組擁有正式描述性的**,該**的**作用實質是裝載著資料項的特殊收集體,這些**中的資料能以許多不同的方式被取或重新召集而不需要重新組織資料庫**;

2關係代數:

在數學中,關係代數是支出叫做逆反的對合一運算的剩餘布林代數。激發關係代數的例子是在集合x上的所有二元關係的代數,帶有r-s被解釋為平常的二元關係復合;

在資料庫中,關係代數是一階邏輯的分支,是閉合於運算下的關係的集合。運算作用於乙個或多個關係上來生成乙個關係;關係代數是電腦科學的一部分。

在純數學中的關係代數是有關於數理邏輯和集合論下的代數結構;

關係代數是一種抽象的查詢語言,用於對關係的運算來表達查詢,作為研究關係資料語言的數學工具。

關係代數的運算物件是關係,運算結果為關係;關係代數用到的運算子包括四類:集合運算子,專門的關係運算子,算數比較符,邏輯運算子;

資料庫關係代數的六個運算:選擇,投影,笛卡爾積,並集,差積,重新命名;

selec a.*,b.*  投影

from a,b        笛卡爾積

where a.c1 = b.c1 and a.c1 = 5  選擇

union             並集

selec a.*,b.*

from a,b

where a.c1 = b.c1 and a.c1 = 10;

sql的查詢語言鬆散的基於關係代數,儘管sql中的運算元不完事是關係,很多有用的關於代數的理論在sql對應者中不成立;

二,資料庫的優化

1.查詢優化技術;

資料庫查詢優化技術主要包括查詢重用技術,查詢重寫規則,查詢演算法的優化技術,並行查詢優化技術,分布式查詢優化技術,及其它方面(如框架結構)的優化技術,這6項技術構成了乙個廣義的資料庫查詢優化的概念;

從優化的內容上看,查詢優化又分為代數優化和非代數優化,或稱為邏輯優化和物理優化。邏輯優化主要依據關係代數的等價變換做一些邏輯變換,物理優化主要根據資料讀取,表連線方式,邊連線順序,排序等技術對查詢進行優化。查詢重寫規則屬於邏輯優化,運用了代數關係和啟發式規則,查詢演算法優化屬於物理優化,運用了基於代價估算的多表連線演算法求解最小話費的技術;

2.資料庫調優

資料庫調優可以使資料庫應用執行的更快,其目標是使資料庫有更高的吞吐量(在單位時間內完成的事務越多越好),更短的響應時間(沒乙個事務的響應時間越短越好);

被調優的物件是整個資料庫管理系統總體;

查詢語句優化的物件是一條查詢語句;

3.資料庫調優的方式

1)人工調優:主要依賴人,效率低下;要求操作者完全理解常識所依賴的原理,還需要對應用,資料庫管理系統,作業系統以及硬體有廣泛而深刻的理解;

3)自調優:為資料庫系統建立乙個模型,根據『影響資料庫系統效能效率的因素』,資料庫系統自進行引數的配置;

4.資料庫調優主要分為五個階段:

1)第一階段:需求分析期,應用情況的估算,系統選型策;

2)第二階段:專案測試期,資料模型的設計;

3)第三階段:開發期,sql的設計,資料庫功能的啟用;

4)第四階段:測試與執行,資料庫功能的啟用,模型系統預執行,系統監控分析;

5)第五階段:上線與維護,系統監控分析;

5.資料庫調優五個階段的主要技術:

1)應用情況的預算:應用的使用方式(把業務邏輯轉為資料庫的讀寫分別邏輯,以是讀多寫少好是讀寫均衡等來區分oltp和)

邏輯查詢優化:

1.查詢操作的優化

a)選擇操作

選擇優化:對應的是限制條件(=,>,《等),操作物件是二維表中的行

優化方式:選擇操作下推(如a.a = b.a and a.a =1 可轉換成a.a = 1 and b.a = 1,這樣就將a.b表的條件,下推到各自對應的表中)

目的:儘量減少連線操作前的元陣列,使得中間臨時關係盡量少

好處:減少io和cpu的消耗,節約記憶體空間

b)投影操作:對應的select查詢的目的列物件

優化方式:投影操作下推

目的:儘量減少連線前的列數,使得中間臨時關係盡量小

好處:這樣雖然不能減少io,但是可以減少連線後的中間關係的元組大小,節約記憶體空間;

c) 連線操作:對應的是連線條件,表示兩個表連線的條件

連線操作涉及兩個子問題:

1)多表連線中每個表被連線的順序決定效率;如果乙個查詢語句只有乙個表,則這樣的語句很簡單;但如果有多個表,則會涉及表之間以什麼樣的順序倆連線最高效;

2)多表連線沒個表連線的順序被使用者語義定義;查詢語句多表連線有著不同的語義,這決定著表之間的前後連線次序是不能隨意更換的。否則,結果集中資料是不同的。因此,表的前後連線次序是不能隨意交換的;

2.使用explain來獲取select的詳細資訊

語法:explain

mysql 效能優化篇 優化資料庫結構

方法1 將字段很多的表分解為多個表。通過這種分解,可以提高表的查詢效率。對於字段很多,且有些字段使用不頻繁的表,可以通過這種分解的方式優化資料庫的效能。方法2 增加中間表 對於經常需要聯合查詢的表,可以建立中間表 提高查詢效率。通過建立中間表,把需要經常聯合查詢的資料插入到中間表,然後將原來的聯合查...

小溫談資料庫優化 資料庫設計篇

三大正規化 第1規範 沒有重複的組或多值的列,這是資料庫設計的最低要求。第2規範 每個非關鍵字段必須依賴於主關鍵字,不能依賴於乙個組合式主關鍵字的某些組成部分。消除部分依賴,大部分情況下,資料庫設計都應該達到第二正規化。第3規範 乙個非關鍵字段不能依賴於另乙個非關鍵字段。消除傳遞依賴,達到第三正規化...

資料庫優化 資料庫設計優化

一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...