PHP + MYSQL 網站性能
我必須管理一個不是我開發的網站。它在 PHP 中使用位於 Web 伺服器中的 mysql 數據庫。該網站有時(當訪問者增加太多時)停止響應,或者響應太慢。
我用 PHP 開發了一些網站,但從來沒有照顧過管理,所以真的不知道從哪裡開始。伺服器(硬)似乎很好,當網路停止響應時,cpu 的使用率約為 55% 並且有很多記憶體。
我不是要求某人解決這個問題。我真的很想如果有人能給我一些關於我在哪裡可以找到日誌以及我應該如何閱讀和解釋它們的提示。所以,這樣我就可以知道它是淨流量、數據庫(哪些查詢)還是什麼。
謝謝!
*更新:*忘了說:它是 Windows Server 2003。
*注意:*我用 Jet Profiler 記錄了大約一天。我並不真正了解它提供的所有資訊,但有一個查詢將其標記為非常慢。這是有道理的,因為它是一個帶有 where 子句的 select,它具有三個類似的條件。最初我沒有在我的問題中包含這個,因為當我從 MySQL 查詢瀏覽器執行查詢時,它不需要任何時間。不到 0.01 秒。
降低網站速度的通常是數據庫。您很可能有一些查詢寫得不好/沒有編入索引,並且是導致速度下降的原因。在 MySQL 中,您可以通過打開Slow Query Log來找到響應時間過長的查詢。
通常這涉及以下步驟: 1. 在 MySQL 日誌文件夾中創建一個名為 slowqueries.log 的文件,通常是
/var/log/mysql/
.chmod
使用(假設您在 Linux 上)將其權限更改為使用者 mysql 。2. 以 root 身份登錄我的 sql 並發出以下查詢:set GLOBAL slow_query_log_file='/var/log/mysql/slowqueries.log'; -- sets the log file
SET GLOBAL slow_query_log=1; -- turns on slow query logging
一旦確定執行時間過長的查詢,您可以使用EXPLAIN或EXPLAIN EXTENDED進一步分析它們並查看如何優化它們,通常是通過添加索引/改進連接。