Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao các truy vấn của chúng tôi bị kẹt ở trạng thái Ghi vào mạng trong MySql?

Vì các ứng dụng không tạo ra các truy vấn theo ý muốn một cách kỳ diệu, tôi nghĩ rằng rất có thể có một lỗi sai ở đâu đó trong ứng dụng của bạn gây ra điều này. Dưới đây là một số gợi ý mà bạn có thể sử dụng để theo dõi nó. Tôi đoán rằng bạn đang sử dụng PHP, vì bạn sử dụng MySQL, vì vậy tôi sẽ sử dụng điều đó cho các ví dụ của mình.

Hãy thử thêm nhận xét vào trước tất cả các truy vấn của bạn trong ứng dụng, như thế này:

$sqlSelect  = "/* file.php, class::method() */";
$sqlSelect .= "SELECT * FROM foo ";
$sqlSelect .= "WHERE criteria";

Nhận xét sẽ hiển thị trong nhật ký truy vấn của bạn. Nếu bạn đang sử dụng một trình bao bọc api cơ sở dữ liệu nào đó, bạn có thể tự động thêm các thông báo này:

function query($sql)
{
    $backtrace = debug_backtrace();
    // The function that executed the query
    $prev = $backtrace[1];
    $newSql = sprintf("/* %s */ ", $prev["function"]);
    $newSql .= $sql;

    mysql_query($newSql) or handle_error();
}

Trong trường hợp bạn không sử dụng trình bao bọc mà thực hiện trực tiếp các truy vấn, bạn có thể sử dụng tiện ích mở rộng runkit và hàm runkit_ Chức năng_rename để đổi tên mysql_query (hoặc bất kỳ thứ gì bạn đang sử dụng) và chặn các truy vấn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Connector / C ++ OS X 10.9 Mavericks và XCODE 5.0.2

  2. Đặt NOW () làm Giá trị Mặc định cho kiểu dữ liệu datetime?

  3. Cột không xác định trong 'danh sách trường' khi trình giữ chỗ của câu lệnh đã chuẩn bị nằm trong truy vấn con

  4. Lưu trữ micro giây trong MySQL:giải pháp nào?

  5. MYSQL giống như một tham gia nhưng chỉ cần hàng mới nhất?