以下是您需要思考的一些想法。
首先,我不建議你創建文件,但要相信MySQL。但是,需要配置您的環境以支持您的流量/應用程序。
你應該明白你的數據多一點(在表中的數據是多少改變?你用的是什麼類型的查詢對數據。是你的查詢優化?)
確保你的表進行優化並正確編制索引。確保所有的查詢運行速度快(沒有造成一長排的鎖。)
如果不經常更新你的表,你應該考慮使用MySQL緩存,因爲這會降低你的IO,提高查詢速度。 (別急!如果您的表正在更新所有的時間,這將殺死你的服務器的性能大的時候)
您的查詢緩存設置爲「ON」。根據我的經驗,除非您的數據在您的所有表格上都沒有更改,否則這總是一個壞主意。當你將它設置爲「ON」時,MySQL會緩存每個查詢。然後,只要表中的數據發生變化,MySQL將不得不清除緩存查詢「它將更加努力地工作,同時清理緩存,這會給你帶來不好的性能。」我喜歡把它設置爲「ON DEMAND」 從那裏你可以控制哪些查詢應該是緩存和不應該使用SQL_CACHE
和SQL_NO_CACHE
您要查看的另一件事是你的服務器配置和規格。 你的服務器有多少物理內存? 您使用的是什麼類型的硬盤? SSD不是以什麼速度旋轉?也許15k? 你在運行MySQL的操作系統是什麼? 硬盤上的RAID設置如何? 「RAID 10或RAID 50」將在這裏幫助你很多。 您的處理器速度將會有很大的不同。
如果不使用MySQL 5.6.20+,你應該考慮升級例如MySQL進行了改進,以幫助你,甚至更多。 你的服務器有多少內存?你的innodb_log_buffer_size
設置爲總物理內存的75%?你在使用innodb表嗎?
您還可以使用MySQL複製來提高數據的讀取源。因此,您擁有多臺具有相同數據的服務器,您可以將一半流量從服務器A讀取,另一半從服務器B讀取,因此同一項工作將由多臺服務器處理。
以下是您需要考慮的一個參數:Facebook使用MySQL並且每秒有數百萬次點擊,但它們的時間增加了100%。誠然,他們有一萬億美元的預算,他們的網絡是巨大的,但這裏的想法是相信MySQL完成工作。
你不需要一些不斷寫HTML的java程序。爲什麼不只是在添加,更新和刪除時重建必要的html元素?根據網站的構建方式,這很容易管理。但是,讓許多用戶連接到數據庫並不像它會壓縮系統,除非您沒有正確構建數據庫或正在經歷巨大的流量 - 就像數百萬次點擊。沒有網站只是以這種方式開始,所以你可能想緩存時,但可以使用它的數據庫。當你需要擴展時,這樣做。但是一開始不要過度工程。 – 2014-12-05 00:11:01
我知道開始時過度工程不是一個好主意,但是網站(尚未建成)預計會立即有大量的流量,然後在一段時間內減速。我只是不希望數據庫在流量達到高峯時出現故障(峯值將在每天的數百萬次點擊中)。此外,數據庫永遠不會被觀衆改變(沒有註冊,評論等),所以它只包含要顯示的信息,從不改變。 – Cody 2014-12-05 00:14:33
如果數據庫永遠不會改變,爲什麼不直接使用它來生成你需要的html並提供平面文本呢? 「大流量」究竟是什麼 - 就像每分鐘100萬次點擊一樣?你怎麼能如此自信呢? - 對不起 - 根據主持人的不同,每天一百萬的系統可能不會太糟糕。你是否使用虛擬專用環境,共享主機,單個專用服務器等 – 2014-12-05 00:16:44