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

Làm cách nào để yêu cầu trợ giúp tối ưu hóa &sửa các truy vấn trong MySQL?

Sử dụng HIỂN THỊ TẠO BẢNG

Điều này cho tôi biết nhiều hơn về bảng của bạn hơn những lời bạn từng có thể:

mysql> show create table magic\G
*************************** 1. row ***************************
       Table: magic
Create Table: CREATE TABLE `magic` (
  `id` int(11) DEFAULT NULL,
  `what` varchar(255) DEFAULT NULL,
  `the` datetime DEFAULT NULL,
  `heck` text,
  `soup_is_good` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

CAVEAT :Nếu bạn có 70 cột trong bảng của mình, hãy bỏ qua những cột không cần thiết . Điều gì cần thiết?

  • Các trường đã THAM GIA trên
  • Các trường được CHỌN
  • Các trường được ghi ở WHERE trên

Sử dụng EXPLAIN

Điều này cho phép tôi xem cách tốt nhất để tối ưu hóa truy vấn hiện đang hoạt động nhưng có lẽ là chậm của bạn:

mysql> explain select *     from magic\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: magic
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 1
        Extra: 
1 row in set (0.00 sec)

Sử dụng \ G

Phải cuộn sang phải nói chung là một sự bất tiện.

Thông thường:

mysql> select * from magic;
+------------+-------------------------------+---------------------+-------------------+--------------+
| id         | what                          | the                 | heck              | soup_is_good |
+------------+-------------------------------+---------------------+-------------------+--------------+
| 1000000000 | A really long text string yay | 2009-07-29 22:28:17 | OOOH A TEXT FIELD |        100.5 | 
+------------+-------------------------------+---------------------+-------------------+--------------+
1 row in set (0.00 sec)

Tốt hơn:

mysql> select * from magic\G
*************************** 1. row ***************************
          id: 1000000000
        what: A really long text string yay
         the: 2009-07-29 22:28:17
        heck: OOOH A TEXT FIELD
soup_is_good: 100.5
1 row in set (0.00 sec)

CAVEAT: \ G rõ ràng là biến một hàng dữ liệu thành nhiều hàng. Điều này trở nên cồng kềnh như nhau đối với một số hàng dữ liệu. Làm những gì có vẻ tốt nhất.

Sử dụng một hộp dán bên ngoài cho những khối dữ liệu lớn đáng ghét:

Hãy cho chúng tôi biết mong đợi của bạn

  • Chậm? - Chúng tôi không biết chậm là gì đối với bạn. Giây, phút, giờ? Thật hữu ích khi biết.
  • Nhanh hơn - Chúng tôi cũng không biết điều này. Kỳ vọng của bạn về tốc độ nhanh là gì?
  • Tần suất - Đây có phải là truy vấn mà bạn định chạy chỉ một lần không? Hằng ngày? Hàng trăm hay hàng nghìn lần một ngày? Điều này giúp chúng tôi biết khi nào là Đủ tốt .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mã hóa ngủ đông của cơ sở dữ liệu hoàn toàn minh bạch với ứng dụng

  2. Làm thế nào một truy vấn có thể nhân 2 ô cho mỗi hàng MySQL?

  3. phân loại tự nhiên mysql

  4. Chèn vào nhiều bảng trong một truy vấn

  5. SQL:Lỗi cú pháp với giao nhau?