關於PHP操作MYSQL的有關問題

來源:互聯網
上載者:User
關於PHP操作MYSQL的問題
在一個訪問量很大網站裡,PHP應用怎麼操作MYSQL比較告效些呢,比如查詢,更新,刪除等相關的操作。

------解決方案--------------------
讀寫分離。加緩衝
------解決方案--------------------
規劃好資料庫很關鍵 資料到了一定規模分庫分表...
------解決方案--------------------
php 操作資料庫就是些操作...
更多的最佳化應該是在資料庫處理上

將一些查詢結果放到 memcached
將一些結果放到暫存資料表
將一些結果放到臨時記憶體表

將一些重複的查詢合并成一條查詢

....

太多了.
------解決方案--------------------
不同的表放到不同的伺服器上,這個夠簡單了吧,不過要求是它們沒有聯查。

如果是少量寫,但是讀壓力巨大,磁碟轉速跟不上網路流量了,做主從分離讀寫。

如果一個表的伺服器/主從叢集都撐不住了,把表按照某個欄位再雜湊或者分段拆到不同的機器上。

怎麼管理這些映射關係,那就做個mysql proxy之類的,它工作在記憶體裡,一般的壓力是壓不死它的,就算能壓死一台,大不了多開幾台proxy再做負載平衡,所有資料庫操作提交給proxy,在proxy裡解析SQL命令,根據設定檔做正確的轉寄即可,在這個proxy之下可以再有主從叢集的proxy, 看需求定。

如果不想要proxy直接將策略寫死在程式裡也可以,就是一個決策函數而已,它應該傳入SQL命令,返回應當請求的mysql伺服器ip:port即可,把這個函數單獨放個php裡,其他用它的include即可,這樣牽一髮而動全身,很淡定。
------解決方案--------------------
探討

不同的表放到不同的伺服器上,這個夠簡單了吧,不過要求是它們沒有聯查。

如果是少量寫,但是讀壓力巨大,磁碟轉速跟不上網路流量了,做主從分離讀寫。

如果一個表的伺服器/主從叢集都撐不住了,把表按照某個欄位再雜湊或者分段拆到不同的機器上。

怎麼管理這些映射關係,那就做個mysql proxy之類的,它工作在記憶體裡,一般的壓力是壓不死它的,就算能壓死一台,大不了多開幾台proxy再做負……

------解決方案--------------------
查詢可以採用 sphinx+php (sphinx具有的特性:高速索引,高速搜尋)

百度或google

具體參考下:http://wenku.baidu.com/view/ff2efb2d647d27284b7351ad.html


------解決方案--------------------
做群集!
------解決方案--------------------
將mysql設定為叢集,進行主從讀寫分離。
如果計劃使用一個超大資料量的項目,而且需要交易處理或外鍵支援,
那麼你真的應該直接使用InnoDB方式。
但需要記住InnoDB 的表需要更多的記憶體和儲存.
------解決方案--------------------
初學者先不要管這個問題
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.