Genellikle sorun giderme ve optimizasyonda kullanılan mysql'de yaygın olarak kullanılan bazı sql'leri paylaşın.
1. Mevcut uygulama bağlantılarını kontrol edin ve bağlantı sayısındaki ani artışı giderin
ip sırasına göre kullanıcı, SUBSTRING_INDEX (ana bilgisayar, ':', 1) olarak IP, sayım olarak (*), bilgi_schema.processlist'ten db, ana bilgisayar ('localhost') ve kullanıcı ('çoğaltıcı') grubunda değil sayıya göre;2. Tablonun ait olduğunu ve yaklaşık satır sayısını görüntüleyin, genellikle alan dizinleri eklerken bakın
information_schema.tables'dan TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS seçin burada TABLE_NAME = 'tablo adı';
3. Masayı fiziksel alanı serbest bırakmak için düzenlemenin gerekli olup olmadığını kontrol edin.
boyut olarak table_name, table_rows, concat (round (DATA_LENGTH / 1024/1024, 2), 'MB') seçin, DATA_FREE / 1024/1024 AS data_free_MB from information_schema.TABLES burada table_schema = DATA_LENGTH desc ile 'Kitaplık adı' sıralaması;4. Şu anda bir kilit var mı?
information_schema.innodb_locks'dan * seçin;5. Mevcut kilit blokajı
information_schema.innodb_lock_waits'den * seçin;6, mevcut kilit bekleme detayları
it.trx_mysql_thread_id, il.lock_id, il.lock_table, il.lock_mode, il.lock_type, it.trx_state, pl.USER||'@'||pl.HOST olarak user_host, pl.db, pl.command, pl seçin .info, it.trx_started, it.trx_wait_started, now () - trx_wait_started as wait_seconds, il.lock_index, it.trx_weight, it.trx_rows_locked, it.trx_rows_modified from information_schema.INNODB_TRX it, information_schema_schema. it.trx_id = il.lock_trx_id ve it.trx_mysql_thread_id = pl.id \ G7. En son kilitlenme, taahhüt edilmeyen şeyler, CHECKPIONT, BUFFER POOL vb.
motor innodb durumunu göster \ G8. Gereksiz iş parçacığı bilgilerini filtrelemek için çağrı cihazı kullanın
çağrı cihazı grep -v Uyku; işlem listesini göster;
9. Çalışmakta olan ayrıntılı SQL'i görüntüleyin
SELECT * INFORMATION_SCHEMA.PROCESSLIST NEREDE bilgi null değildir \ G
10. Her aşamada belirli bir SQL'in yürütme zamanını görüntüleyin ve profil oluşturma işlevini etkinleştirin
global profil oluşturma = açık;11. Kullanıcı bilgilerini görüntüleyin
mysql.user grubundan kullanıcıya göre kullanıcı, ana bilgisayar, kimlik doğrulama_dizesi seçin;12. En çok hangi SQL'in çalıştırıldığını kontrol edin
PERFORMANS_schema.events_statements_summary_by_digest'ten SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_SENT, SUM_ROWS_EXAMINED, FIRST_SEEN, LAST_SEEN SEÇİN; SCHEMA_NAME boş değildir ve SCHEMA_NAME 1 LIMIT;13. Hangi SQL taramasının en çok satıra sahip olduğu (GÇ tüketimi)
SEÇİN SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR, AVG_TIMER_WAIT, SUM_ROWS_SENT, SUM_ROWS_EXAMINED, FIRST_SEEN, LAST_SEEN FROM performance_schema.events_statements_summary_by_digest burada SCHEMA_NAME null değildir ve SCHEMA_NAME null değildir ve SCHEMA_NAME null değildir14. En geçici tabloları hangi SQL kullanıyor
SCHEMA_NAME, DIGEST_TEXT, SUM_CREATED_TMP_DISK_TABLES, SUM_CREATED_TMP_TABLES, FIRST_SEEN, LAST_SEEN FROM performance_schema.events_statements_summary_by_digest'i SEÇİN, burada SCHEMA_NAME, TMP_DISK_TISKEN, ORLDERES değildir.15. Hangi SQL en çok sonuç kümesini döndürür (net tüketim)
Performance_schema.events_statements_summary_by_digest'ten SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_SENT, SUM_ROWS_SENT, FIRST_SEEN, LAST_SEEN SEÇİNİZ burada SCHEMA_NAME boş değildir ve SCHEMA_NAME SCHEMA_NAME! = 'İnformation_S16. Hangi SQL en çok türe sahip (CPU tüketimi)
Performance_schema.events_statements_summary_by_digest'ten SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_SENT, SUM_SORT_ROWS, FIRST_SEEN, LAST_SEEN SEÇİNİZ burada SCHEMA_NAME boş değildir ve SCHEMA_NAME! = 'İnformation_SUMc'MITAlan sınırlıdır. Bu, MySQL'in sorun giderme ve optimizasyonunda yer alan bazı SQL'lerin girişidir.Ayrıca kendiniz de test edebilirsiniz. Editör daha sonra daha fazla DBA içeriği paylaşacak ve ilgilenen arkadaşlar buna dikkat edecek ~