一、使用EXPLAIN:
十余年的介休網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整介休建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“介休網(wǎng)站設(shè)計(jì)”,“介休網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
PostgreSQL為每個(gè)查詢都生成一個(gè)查詢規(guī)劃,因?yàn)檫x擇正確的查詢路徑對(duì)性能的影響是極為關(guān)鍵的。PostgreSQL本身已經(jīng)包含了一個(gè)規(guī)劃器用于尋找最優(yōu)規(guī)劃,我們可以通過使用EXPLAIN命令來查看規(guī)劃器為每個(gè)查詢生成的查詢規(guī)劃。
PostgreSQL中生成的查詢規(guī)劃是由1到n個(gè)規(guī)劃節(jié)點(diǎn)構(gòu)成的規(guī)劃樹,其中最底層的節(jié)點(diǎn)為表掃描節(jié)點(diǎn),用于從數(shù)據(jù)表中返回檢索出的數(shù)據(jù)行。然而,不同
的掃描節(jié)點(diǎn)類型代表著不同的表訪問模式,如:順序掃描、索引掃描,以及位圖索引掃描等。如果查詢?nèi)匀恍枰B接、聚集、排序,或者是對(duì)原始行的其它操作,那
么就會(huì)在掃描節(jié)點(diǎn)"之上"有其它額外的節(jié)點(diǎn)。并且這些操作通常都有多種方法,因此在這些位置也有可能出現(xiàn)不同的節(jié)點(diǎn)類型。EXPLAIN將為規(guī)劃樹中的每
個(gè)節(jié)點(diǎn)都輸出一行信息,顯示基本的節(jié)點(diǎn)類型和規(guī)劃器為執(zhí)行這個(gè)規(guī)劃節(jié)點(diǎn)計(jì)算出的預(yù)計(jì)開銷值。第一行(最上層的節(jié)點(diǎn))是對(duì)該規(guī)劃的總執(zhí)行開銷的預(yù)計(jì),這個(gè)數(shù)
值就是規(guī)劃器試圖最小化的數(shù)值。
這里有一個(gè)簡單的例子,如下:
復(fù)制代碼 代碼如下:
EXPLAIN SELECT * FROM tenk1;
QUERY PLAN
-------------------------------------------------------------
Seq Scan on tenk1 (cost=0.00..458.00 rows=10000 width=244)
EXPLAIN引用的數(shù)據(jù)是:
1). 預(yù)計(jì)的啟動(dòng)開銷(在輸出掃描開始之前消耗的時(shí)間,比如在一個(gè)排序節(jié)點(diǎn)里做排續(xù)的時(shí)間)。
2). 預(yù)計(jì)的總開銷。
3). 預(yù)計(jì)的該規(guī)劃節(jié)點(diǎn)輸出的行數(shù)。
4). 預(yù)計(jì)的該規(guī)劃節(jié)點(diǎn)的行平均寬度(單位:字節(jié))。
這里開銷(cost)的計(jì)算單位是磁盤頁面的存取數(shù)量,如1.0將表示一次順序的磁盤頁面讀取。其中上層節(jié)點(diǎn)的開銷將包括其所有子節(jié)點(diǎn)的開銷。這里的輸出
行數(shù)(rows)并不是規(guī)劃節(jié)點(diǎn)處理/掃描的行數(shù),通常會(huì)更少一些。一般而言,頂層的行預(yù)計(jì)數(shù)量會(huì)更接近于查詢實(shí)際返回的行數(shù)。
現(xiàn)在我們執(zhí)行下面基于系統(tǒng)表的查詢:
復(fù)制代碼 代碼如下:
SELECT relpages, reltuples FROM pg_class WHERE relname = 'tenk1';
從查詢結(jié)果中可以看出tenk1表占有358個(gè)磁盤頁面和10000條記錄,然而為了計(jì)算cost的值,我們?nèi)匀恍枰懒硗庖粋€(gè)系統(tǒng)參數(shù)值。
復(fù)制代碼 代碼如下:
postgres=# show cpu_tuple_cost;
cpu_tuple_cost
----------------
0.01
(1 row)
cost = 358(磁盤頁面數(shù)) + 10000(行數(shù)) * 0.01(cpu_tuple_cost系統(tǒng)參數(shù)值)
下面我們再來看一個(gè)帶有WHERE條件的查詢規(guī)劃。
復(fù)制代碼 代碼如下:
EXPLAIN SELECT * FROM tenk1 WHERE unique1 7000;
QUERY PLAN
------------------------------------------------------------
Seq Scan on tenk1 (cost=0.00..483.00 rows=7033 width=244)
Filter: (unique1 7000)
EXPLAIN的輸出顯示,WHERE子句被當(dāng)作一個(gè)"filter"應(yīng)用,這表示該規(guī)劃節(jié)點(diǎn)將掃描表中的每一行數(shù)據(jù),之后再判定它們是否符合過濾的條
件,最后僅輸出通過過濾條件的行數(shù)。這里由于WHERE子句的存在,預(yù)計(jì)的輸出行數(shù)減少了。即便如此,掃描仍將訪問所有10000行數(shù)據(jù),因此開銷并沒有
真正降低,實(shí)際上它還增加了一些因數(shù)據(jù)過濾而產(chǎn)生的額外CPU開銷。
上面的數(shù)據(jù)只是一個(gè)預(yù)計(jì)數(shù)字,即使是在每次執(zhí)行ANALYZE命令之后也會(huì)隨之改變,因?yàn)锳NALYZE生成的統(tǒng)計(jì)數(shù)據(jù)是通過從該表中隨機(jī)抽取的樣本計(jì)算的。
如果我們將上面查詢的條件設(shè)置的更為嚴(yán)格一些的話,將會(huì)得到不同的查詢規(guī)劃,如:
復(fù)制代碼 代碼如下:
EXPLAIN SELECT * FROM tenk1 WHERE unique1 100;
QUERY PLAN
樓主想用PostgreSQL集群功能目前行PostgreSQL standby功能看原文檔介紹 目前PostgreSQL做負(fù)載均衡集群案前讀寫離案樓主
《一鍵獲取可可V8 PHP》是一款可可網(wǎng)絡(luò)驗(yàn)證系統(tǒng),該系統(tǒng)需要認(rèn)證的時(shí)候由客戶端軟件主動(dòng)調(diào)用xmlhttp組件連接服務(wù)端進(jìn)行數(shù)據(jù)交互,服務(wù)端與客戶端數(shù)據(jù)交互的加解密算法采用RSA不對(duì)稱算法(服務(wù)端使用私鑰加解密,客戶端使用公鑰加解密)。
【軟件特色】:
1、服務(wù)端采用快速安全的php腳本語言和MySQL數(shù)據(jù)庫構(gòu)建,且可以搭建兩個(gè)服務(wù)端以保證在一個(gè)服務(wù)端宕機(jī)時(shí)軟件自動(dòng)連接另一服務(wù)端來認(rèn)證;
2、管理端采用主流的網(wǎng)頁模式,無需下載管理客戶端,能上網(wǎng)就可以登錄管理端操作(智能手機(jī)也可以登錄管理端);
3、客戶端也就是你的軟件,不論你使用哪種編程語言開發(fā)軟件,都可以將可可網(wǎng)絡(luò)驗(yàn)證系統(tǒng)無縫集成到您的軟件中去;
4、可可網(wǎng)絡(luò)驗(yàn)證做為商業(yè)軟件的用戶認(rèn)證系統(tǒng)可更好的保護(hù)您的軟件,其方便快捷的管理模式,會(huì)讓你覺得管理軟件的各種數(shù)據(jù)是件非常愉快的事。
主鍵是表中的一個(gè)或多個(gè)字段,它的值用于惟一地標(biāo)識(shí)表中的某一條記錄.;使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。
索引是對(duì)數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu),只有當(dāng)經(jīng)常查詢索引列中的數(shù)據(jù)時(shí),才需要在表上創(chuàng)建索引。索引占用磁盤空間,并且降低添加、刪除和更新行的速度。當(dāng)然索引也有好處就是查詢速度快,它利還是大于弊的所以請慎重使用索引。
比如:一個(gè)學(xué)生表(t_stu )有1000條數(shù)據(jù),給它id列建個(gè)主鍵和索引,想查詢id=1000;的這條信息,如果沒有索引,它就一條一條的比對(duì)查找,系統(tǒng)運(yùn)行1000次才找到,要是創(chuàng)建了索引,查詢id=1000的這條信息,系統(tǒng)只運(yùn)行一次就找到了。