2011-08-17 49 views
0

我目前在服務器上使用mysql數據庫,在我的應用程序中使用本地sqlite。我在本地數據庫中遇到很多問題。有時數據庫鎖定,無法更新等。Mac應用程序中的數據庫選項

除了核心數據和Sqlite在Mac應用程序本地存儲數據有沒有其他選擇嗎?

回答

3

只是用另一個數據庫替換一個數據庫不太可能解決鎖定問題。 SQLite和CoreData(通常使用SQLite)是許多即使不是大多數Mac應用程序也使用的可靠技術。

沒有關於您遇到的鎖的更多信息,我建議您更可能錯誤地使用數據庫。你是否試圖從多線程訪問數據庫?你是否正確地關閉了預備的語句

0

我會說核心數據是最好的。你爲什麼不用這個? 你也可以用XML保存東西。這對保存一些小東西非常方便。 可以保存dicitionary例如像這樣:

[dict writeToFile:@"YOUR_PATH" atomically:NO]; 

您可以通過實施得到再次字典:

NSDicionary* dict = [NSDictionary dictionaryWithContentsOfFile:@"YOUR_PATH"]; 
2

您可以繼續使用核心數據,但使用不同的存儲後端,例如,二進制(一般來說,鎖定和交易安全應該不會有問題)。請參閱Core Data Programming Guide以瞭解不同類型的持久店鋪協調員。

關於Stephen Darlington's Answer:我不完全同意。根據SQLite中的併發控制(很可能是樂觀併發控制),事務可能會被中止,因爲它修改了當前「正在使用」的數據。這可能發生在甚至是單個關係的數據庫的粒度上。在這種情況下,使用像「二進制存儲」這樣的「較少事務安全」的後端可能已經足夠了。這會讓你負擔管理一致性,但如果你確定你的交易不衝突,你應該沒問題。

+0

我確實說過「不太可能」。在這種情況下,管理自己的交易是解決方案,但問題的措辭 - 缺乏細節 - 使我懷疑這不是其中之一。 –

相關問題