導航:首頁 > 數據處理 > 資料庫和緩存哪個先操作好

資料庫和緩存哪個先操作好

發布時間:2022-04-25 04:52:49

⑴ 為什麼使用mysql主從資料庫,而不考慮使用緩存

目的不完全相同

1、資料庫信息量大了一般都要使用主從資料庫,主寫從讀。使用主從資料庫主要是使資料庫能支撐更大的並發,例如:「前台」使用master(主庫),「報表」使用slave(從庫),那麼任何「報表」的sql在slave執行都不會造成「前台」鎖表;另外還有方便熱備份,支持兩個庫用不同引擎等好處
2、而程序里使用緩存多是為了減少對資料庫訪問壓力。

⑵ 資料庫連接緩存概念和如何配置連接緩存

那什麼是連接緩存,它有什麼用好處,如何創建配置連接緩存以及如何在組件中使用連接緩存呢?下面將一一為你解答。我們在開發兩層應用的的時候,總是使用sqlca這個對象來控制,訪問資料庫連接。當我們不用的時候,就會斷開這個連接。另外在兩層應用中,我們總是在程序啟動的時候連接資料庫,而在退出程序的時候才斷開資料庫連接。到了三層開發,你就不能再這樣做了,(當然,如果你不用連接緩存,也是可以的)。所謂連接緩存,就是資料庫連接在組件不需要的時候並不是做物理斷開,而是把這個連接緩存到緩存池中,等下一次某個組件再請求連接的時候再次使用。這要做的好處,就是可以提高系統的效率。要知道,連接資料庫是很浪費時間的操作。這樣一來,就很明顯地看到,使用連接緩存的好處了,那就是提高效率!在EAS中,要想使用連接緩存,你只能使用如下的幾個資料庫連接介面: 1,openclient 2,Oracle專用介面 3,JDBC 4,ODBC 除了這幾種,其他的都不能使用,例如我們經常使用的MS SQL Server資料庫專用介面,是不能創建連接緩存的。如果要連接MS SQL Server,你只能使用ODBC的方式。創建連接緩存的方式有多種,我們常見的就是用管理器和使用jagtool命令行先說命令行方式: %JAGTOOL% create ConnCache:SYB_PBWF_Odbc%JAGTOOL% set_props ConnCache:SYB_PBWF_Odbc com.sybase.jaguar.conncache.conlibdll odbc32.dll%JAGTOOL% set_props ConnCache:SYB_PBWF_Odbc com.sybase.jaguar.conncache.conlibname ODBC%JAGTOOL% set_props ConnCache:SYB_PBWF_Odbc com.sybase.jaguar.conncache.db_type Unknown%JAGTOOL% set_props ConnCache:SYB_PBWF_Odbc com.sybase.jaguar.conncache.password.e sql%JAGTOOL% set_props ConnCache:SYB_PBWF_Odbc com.sybase.jaguar.conncache.remotesvrname pbwf%JAGTOOL% set_props ConnCache:SYB_PBWF_Odbc com.sybase.jaguar.conncache.username dba這就可以創建一個連接緩存了。但這樣確實挺麻煩的,但你可以寫成一個bat文件,實現自動創建工作。第二個方法就是用管理器了,手動創建。用管理器連接到easerver,點左面的connection caches,會在右面列出來當前easerver上所有的緩存, 在右面空白處點右鍵,選新建,根據向導,就可以完成緩存的創建,需要注意的是,如果你使用ODBC,那server name中填寫odbc數據源的名字,並且這個odbc你必須要創建到系統數據源裡面,否則eas服務就會找不到指定的數據源。創建完成後,你在緩存列表中那個新建緩存上點右鍵,選擇ping,可以測試緩存是否正常。一旦創建完緩存,你就可以在組件中使用了。那組件中如何使用連接緩存呢?很簡單,假設,你在組件中同樣使用sqlca這個資料庫連接事務對象,則你只要做如下操作: SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = CacheName='myCache' 對,就是這么簡單,你還可以使用如下的方式: SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString='DSN=xb_db;UID=db_user;PWD=',CacheName='myCache' 這個方式和上一個方式的區別就是,如果你的緩存mycache的連接參數和前面的參數不一致,就會出現無法連接資料庫的問題。有很多人會問,pb組件如何使用JDBC連接資料庫呢?你只要創建一個JDBC的連接緩存,然後在組件中這樣寫: SQLCA.DBMS = JDBCSQLCA.AutoCommit = FalseSQLCA.DBParm = CacheName='myJdbcCache' 很簡單吧!不過,不要高興得太早了,雖然pb的代碼是不區分大小寫的,但連接緩存是區分大小寫的。比如,你創建的緩存名字叫myJdbcCache,但你在組件應用的時候寫成了 SQLCA.DBParm = CacheName='MyJdbcCache' 你將無法連接到資料庫。切記!

⑶ 頁面打開次數統計是持久化到資料庫好還是放在緩存中

頁面打開次數這種數據,建議如下處理。
可以採用消息隊列消費,將數據存入緩存,然後定期將緩存中數據存入資料庫。
這樣可以減少資料庫壓力。

⑷ java任務隊列用緩存還是資料庫表實現較好

不能簡單說誰好誰壞,各有適用場景。
資料庫在持久化方面比較好,服務宕機,數據還在,但並發性能方面不如緩存。
如果用緩存,最主要是要處理好多線程時線程安全、宕機緩存丟失的問題。如果是分布式部署,同步緩存也要考慮。

⑸ 資料庫緩存機制是什麼就是緩存是如何作用資料庫的越詳細越好。要對的。

首先你要了解下什麼是 資料庫緩存機制 (最好找書本來看下)
已經過了很久了。我都忘記了。不過可以舉個類似的例子 希望幫助你下理解。
還有些需要具體例子代碼看的話,最好還是找資料庫的相關書籍講解比較詳細 網上很少能詳細講解的 如果在學校就最好了。找老師問就可以 或者你去些關於資料庫方面的論壇上找找資料

資料庫緩存機制 緩存是介於應用程序和物理數據源之間,其作用是為了降低應用程序對物理數據源訪問的頻次,從而提高了應用的運行性能。緩存內的數據是對物理數據源中的數據的復制,應用程序在運行時從緩存讀寫數據,在特定的時刻或事件會同步緩存和物理數據源的數據。
緩存的介質一般是內存,所以讀寫速度很快。但如果緩存中存放的數據量非常大時,也會用硬碟作為緩存介質。緩存的實現不僅僅要考慮存儲的介質,還要考慮到管理緩存的並發訪問和緩存數據的生命周期。

再如:

靜態的網站的內容都是些簡單的靜態網頁直接存儲在伺服器上,可以非常容易地達到非常驚人的訪問量。但是動態網站因為是動態的,也就是說每次用戶訪問一個頁面,伺服器要執行資料庫查詢,啟動模板,執行業務邏輯到最終生成一個你所看到的網頁,這一切都是動態即時生成的。從處理器資源的角度來看,這是比較昂貴的。
對於大多數網路應用來說,過載並不是大問題。因為大多數網路應用並不是washingtonpost.com或Slashdot;它們通常是很小很簡單,或者是中等規模的站點,只有很少的流量。但是對於中等至大規模流量的站點來說,盡可能地解決過載問題是非常必要的。這就需要用到緩存了。
緩存的目的是為了避免重復計算,特別是對一些比較耗時間、資源的計算。

⑹ 關於asp.net C#的緩存與進行SQL資料庫操作

http://chs.gotdotnet.com/quickstart/aspplus/doc/datacaching.aspx#samples
講的夠清楚了,也有例子,自己看看.下面是它一部分源代碼
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<html>

<script language="C#" runat="server">

void Page_Load(Object Src, EventArgs E) {

DataView Source;

// try to retrieve item from cache
// if it's not there, add it

Source = (DataView)Cache["MyDataSet"];

if (Source == null) {

SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Trusted_Connection=yes");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Authors", myConnection);

DataSet ds = new DataSet();
myCommand.Fill(ds, "作者");

Source = new DataView(ds.Tables["作者"]);
Cache["MyDataSet"] = Source;

CacheMsg.Text = "顯式創建的數據集";
}
else {
CacheMsg.Text = "從緩存中檢索到的數據集";
}

MyDataGrid.DataSource=Source;
MyDataGrid.DataBind();
}

</script>

<body>

<form method="GET" runat="server">

<h3><font face="宋體">緩存數據</font></h3>

<ASP:DataGrid id="MyDataGrid" runat="server"
Width="700"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="宋體"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaad" />

<p>

<i><asp:label id="CacheMsg" runat="server"/></i>

</form>
</body>
</html>

⑺ 文本緩存和資料庫緩存的區別,安裝網站時應選哪個比較好些

當然各有各的好處了,文本緩存肯定比資料庫緩存快,而資料庫緩存比文本緩存安全啊

⑻ 如何Android資料庫緩存進行管理

無論大型或小型應用,靈活的緩存可以說不僅大大減輕了伺服器的壓力,而且因為更快速的用戶體驗而方便了用戶。
Android的apk可以說是作為小型應用,其中99%的應用並不是需要實時更新的,而且詬病於蝸牛般的移動網速,與伺服器的數據交互是能少則少,這樣用戶體驗才更好,這也是我們有時舍棄webview而採用json傳輸數據的原因之一。
採用緩存,可以進一步大大緩解數據交互的壓力,特此,我們簡略列舉一下緩存管理的適用環境:
1. 提供網路服務的應用
2. 數據更新不需要實時更新,但是哪怕是3-5分鍾的延遲也是可以採用緩存機制。
3. 緩存的過期時間是可以接受的(不會因為緩存帶來的好處,導致某些數據因為更新不及時而影響產品的形象等)
帶來的好處:
1. 伺服器的壓力大大減小
2. 客戶端的響應速度大大變快(用戶體驗)
3. 客戶端的數據載入出錯情況大大較少,大大提高了應有的穩定性(用戶體驗)
4. 一定程度上可以支持離線瀏覽(或者說為離線瀏覽提供了技術支持)
一、緩存管理的方法
這里的緩存管理的原理很簡:通過時間的設置來判斷是否讀取緩存還是重新下載。
裡面會有一些細節的處理,後面會詳細闡述。
基於這個原理,目前鄙人見過的兩種比較常見的緩存管理方法是:資料庫法和文件法。
二、資料庫法緩存管理
這種方法是在下載完數據文件後,把文件的相關信息如url,路經,下載時間,過期時間等存放到資料庫,下次下載的時候根據url先從資料庫中查詢,如果查詢到當前時間並未過期,就根據路徑讀取本地文件,從而實現緩存的效果。
從實現上我們可以看到這種方法可以靈活存放文件的屬性,進而提供了很大的擴展性,可以為其它的功能提供一定的支持;
從操作上需要創建資料庫,每次查詢資料庫,如果過期還需要更新資料庫,清理緩存的時候還需要刪除資料庫數據,稍顯麻煩,而資料庫操作不當又容易出現一系列的性能,ANR問題,實現的時候要謹慎,具體作的話,但也只是增加一個工具類或方法的事情。
還有一個問題,緩存的資料庫是存放在/data/data/<package>/databases/目錄下,是佔用內存空間的,如果緩存累計,容易浪費內存,需要及時清理緩存。
當然這種方法從目前一些應用的實用上看,我沒有發現什麼問題。
本文我側重強調第二種方法,第一種方法的實現,就此掠過。
三、文件法緩存管理
這種方法,使用File.lastModified()方法得到文件的最後修改時間,與當前時間判斷是否過期,從而實現緩存效果。
實現上只能使用這一個屬性,沒有為其它的功能提供技術支持的可能。
操作上倒是簡單,比較時間即可。本身處理也不容易帶來其它問題,代價低廉。
四、文件法緩存管理的兩點說明
1. 不同類型的文件的緩存時間不一樣。
籠統的說,不變文件的緩存時間是永久,變化文件的緩存時間是最大忍受不變時間。
說白點,圖片文件內容是不變的,直到清理,我們是可以永遠讀取緩存的。
配置文件內容是可能更新的,需要設置一個可接受的緩存時間。
2. 不同環境下的緩存時間標准不一樣。
無網路環境下,我們只能讀取緩存文件,哪怕緩存早就過期。
WiFi網路環境下,緩存時間可以設置短一點,一是網速較快,而是流量不要錢。
移動數據流量環境下,緩存時間可以設置長一點,節省流量,就是節省金錢,而且用戶體驗也更好。
舉個例子吧,最近本人在做的一個應用在wifi環境下的緩存時間設置為5分鍾,移動數據流量下的緩存時間設置為1小時。
這個時間根據自己的實際情況來設置:數據的更新頻率,數據的重要性等。
五、何時刷新
開發者一方面希望盡量讀取緩存,用戶一方面希望實時刷新,但是成都網站製作響應速度越快越好,流量消耗越少越好,是一個矛盾。
其實何時刷新我也不知道,這里我提供兩點建議:
1. 數據的最長多長時間不變,對應用無大的影響。
比如,你的數據更新時間為1天,則緩存時間設置為4~8小時比較合適,一天他總會看到更新,如果你覺得你是資訊類應用,再減少,2~4小時,如果你覺得數據比較重要或者比較受歡迎,用戶會經常把玩,再減少,1~2小時,依次類推。
為了保險起見,你可能需要毫無理由的再次縮減一下。
2. 提供刷新按鈕。
上面說的保險起見不一定保險,最保險的方法使在相關界面提供一個刷新按鈕,為緩存,為載入失敗提供一次重新來過的機會,有了這個刷新按鈕,我們的心也才真的放下來。

⑼ .net中用了緩存,如何判斷資料庫的數據是否有變動,然後更新緩存

你思路有問題。其實這個問題很好解決。就是一個緩存和資料庫同步的問題。有兩個方案供你參考,當然具體代碼自己去寫,我只提供你思路。
一、SQL SERVER2005以上版本的依賴式緩存,這個解決方案就是當資料庫的數據有更新的時候會自動更新到緩存里。具體怎麼配置,網上查找下,教程很多。
二、自己寫資料庫和緩存的數據同步代碼。當客戶端把更新資料庫的數據操作的時候同時更新緩存里的數據。畢竟寫比讀少了很多。但是在寫緩存的時候,必須注意一個問題,那就是公共緩存對象並發控制的問題,別出現死鎖,或者臟讀,幻讀這類的線程鎖出錯的問題。。。記住一定要在寫緩存的時候鎖住它。。。資料庫其實在寫的時候也是排它鎖的。只不過被資料庫系統自身處理掉了。你寫資料庫數據時感覺不到而已。

⑽ 究竟先操作緩存,還是資料庫

這要看你對執行效率是不是要求很高了,頻繁地讀寫資料庫,特別是遠程資料庫上很耗費時間和資源的,對於一條記錄的多個欄位,其數據特別是多媒體,寫入資料庫之前,當然要在內存中運算處理完成後一次性寫入資料庫中,這是毫無疑問的。

閱讀全文

與資料庫和緩存哪個先操作好相關的資料

熱點內容
交易日歷什麼時候開始 瀏覽:138
夢亮眼罩怎麼代理 瀏覽:244
軍團戰爭怎麼提高技術 瀏覽:780
外匯交易中如何看大盤 瀏覽:231
日數據如何引用到月數據裡面 瀏覽:914
王者榮耀如何查看朋友的比賽信息 瀏覽:172
蘇東坡在為民方面有哪些技術貢獻 瀏覽:950
鞍山商鋪交易都收什麼費用 瀏覽:434
如何將不同數據導入另一個表格 瀏覽:354
浙江美的中央空調代理怎麼聯系 瀏覽:472
etc哪個軟體能查信息 瀏覽:590
快遞鎮級代理一年能賺多少 瀏覽:557
轉帳交易顯示接觸式是什麼意思 瀏覽:558
溫州電腦市場和數碼廣場哪個好 瀏覽:911
產品驗收容易出現哪些問題 瀏覽:415
政府幹預市場的優勢和局限是什麼 瀏覽:268
iqooz3怎麼清除設置數據 瀏覽:403
嘀嗒出行線下交易對司機什麼影響 瀏覽:476
出售看過的書如何發信息 瀏覽:675
如何評估飛豬馬蜂窩接入數據 瀏覽:764