Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kurangi kueri MySQL menjadi satu kueri untuk mempercepat

Lihat apakah saat ini saya menangkap lalu lintas dengan Log Umum:

SELECT @@general_log;   -- 1 if capturing, 0 if not
-- for me, a 1. This means I have been capturing (good for development. Poor idea for Production)

SELECT @@general_log_file; -- file name for General Log if capturing.
-- for me: GeneralLogBegin_20160803_1420.log

SELECT @@datadir; -- the location of the general_log, and other logs
-- for me: C:\ProgramData\MySQL\MySQL Server 5.6\Data\

Sekarang saya matikan penangkapan General Log di bawah ini, karena saya menangkap:

SET GLOBAL general_log=0; -- stop logging

SAYA PINDAHKAN file log saya ke direktori cadangan, mengganti namanya menjadi GL_from_20160803_1420_to_20160806_1559

Ada sedikit ambiguitas pada konten dan rentang waktu pengambilan data yang diwujudkan oleh file di atas.

Tetapkan nama baru untuk pengambilan file log (Mulai segmen untuk nama file)

SET GLOBAL general_log_file='GeneralLogBegin_20160806_1559.log';
SET GLOBAL general_log=1; -- Start logging again

Jalankan aplikasi saya yang terhubung ke server, dan General Log berisi:

PotonganA:

160806 16:08:37   170 Connect   [email protected] on stackoverflow
          170 Query SHOW VARIABLES
          170 Query SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP())
          170 Query SHOW COLLATION
          170 Query SET NAMES latin1
          170 Query SET character_set_results=NULL
          170 Init DB   my_db_name

Catatan:Anda mungkin perlu melakukan

mysqladmin -u root -p flush-log

(diminta kata sandi) untuk menghapus log dari cache ke file. Omong-omong, Sublime Text luar biasa untuk penyegaran otomatis dari file teks yang sedang dimuat. Seperti, file log.

Jadi ChunkA saya di atas adalah rintisan koneksi dari koneksi baru yang masuk. Ini didorong oleh perintah program yang digunakan, apa pun itu. Sebelum perintah program Anda yang Anda gunakan dan kode. Jika Anda terus-menerus membuat koneksi baru, mengeksekusi kode yang Anda tulis, dan memutuskan sambungan, ini semua adalah bagian dari bagasi. Anda tidak memiliki kendali untuk mengoptimalkannya dengan cara sederhana apa pun.

Apa yang harus Anda pertimbangkan untuk dilakukan adalah MENONAKTIFKAN log Kueri Umum di lingkungan produksi. Dan hanya mengaktifkannya selama pengaturan lingkungan Debug dan Uji. Memilikinya meningkatkan beban yang tidak perlu pada tumpukan Anda.



  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 - dapatkan tawaran terendah dari grup tabel berdasarkan produk (hasilnya aneh)

  2. Berapa panjang string id sesi PHP?

  3. PHP PDO:Bagaimana cara menangani bindValue() dan kata kunci yang dicadangkan?

  4. Bagaimana cara menghapus catatan di MySQL dan menyimpan tanggal terbaru?

  5. Impor data hex/biner ke mysql