Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
MySQL-performance_schema, som först finns i MySQL 5.5, tillhandahåller instrumentation för många viktiga serverresurser som minnesallokering, lagrade program, metadatalåsning osv. Men performance_schema innehåller fler än 80 tabeller, och för att få nödvändig information krävs ofta sammanfogning av tabeller i performance_schema och tabeller från information_schema. Med både performance_schema och information_schema ger sys_schema en kraftfull samling användarvänliga vyer i en skrivskyddad databas och är helt aktiverad i Azure Database for MySQL – flexibel server version 5.7.
Det finns 52 vyer i sys_schema och varje vy har något av följande prefix:
- Host_summary eller I/O: I/O-relaterade svarstider.
- InnoDB: InnoDB-buffertstatus och lås.
- Minne: Minnesanvändning av värden och användarna.
- Schema: Schemarelaterad information, till exempel automatisk ökning, index osv.
- Instruktion: Information om SQL-instruktioner; det kan vara en instruktion som resulterade i fullständig tabellgenomsökning eller lång frågetid.
- Användare: Resurser som förbrukas och grupperas av användare. Exempel är fil-I/Os, anslutningar och minne.
- Vänta: Vänta händelser grupperade efter värd eller användare.
Nu ska vi titta på några vanliga användningsmönster i sys_schema. Till att börja med grupperar vi användningsmönstren i två kategorier: Prestandajustering och databasunderhåll.
Prestandajustering
sys.user_summary_by_file_io
I/O är den dyraste åtgärden i databasen. Vi kan ta reda på den genomsnittliga I/O-svarstiden genom att fråga sys.user_summary_by_file_io vyn. Med standardvärdet 125 GB etablerad lagring är min I/O-svarstid cirka 15 sekunder.
Eftersom Azure Database for MySQL – flexibel server skalar I/O med avseende på lagring, minskar min I/O-svarstid till 571 ms efter att ha ökat min etablerade lagring till 1 TB.
sys.schema_tables_with_full_table_scans
Trots noggrann planering kan många frågor fortfarande resultera i fullständiga tabellgenomsökningar. Mer information om typer av index och hur du optimerar dem finns i den här artikeln: Profilfrågasprestanda i Azure Database for MySQL – flexibel server med hjälp av EXPLAIN. Fullständiga tabellgenomsökningar är resursintensiva och försämrar databasens prestanda. Det snabbaste sättet att hitta tabeller med fullständig tabellgenomsökning är att fråga sys.schema_tables_with_full_table_scans vy.
sys.user_summary_by_statement_type
Om du vill felsöka problem med databasprestanda kan det vara bra att identifiera händelserna som händer i databasen, och att använda sys.user_summary_by_statement_type-vyn kan bara göra susen.
I det här exemplet tillbringade Azure Database for MySQL – flexibel server 53 minuter med att rensa den långsamma frågeloggen 44579 gånger. Det är en lång tid och många IO: er. Du kan minska den här aktiviteten genom att antingen inaktivera den långsamma frågeloggen eller minska frekvensen för långsam frågeinloggning till Azure Portal.
Databasunderhåll
sys.innodb_buffer_stats_by_table
[! VIKTIGT]
Att köra frågor mot den här vyn kan påverka prestanda. Vi rekommenderar att du utför den här felsökningen under kontorstid utanför hög belastning.
InnoDB-buffertpoolen finns i minnet och är den huvudsakliga cachemekanismen mellan DBMS och lagring. Storleken på InnoDB-buffertpoolen är kopplad till prestandanivån och kan inte ändras om inte en annan produkt-SKU väljs. Precis som med minnet i operativsystemet växlas gamla sidor ut för att ge plats åt nyare data. Om du vill ta reda på vilka tabeller som förbrukar det mesta av InnoDB-buffertpoolens minne kan du fråga sys.innodb_buffer_stats_by_table vyn.
I bilden ovan är det uppenbart att förutom systemtabeller och vyer upptar varje tabell i databasen mysqldatabase033, som är värd för en av mina WordPress-webbplatser, 16 KB, eller 1 sida, data i minnet.
Sys.schema_unused_indexes &sys.schema_redundant_indexes
Index är bra verktyg för att förbättra läsprestanda, men de medför ytterligare kostnader för infogningar och lagring. Sys.schema_unused_indexes och sys.schema_redundant_indexes ger insikter om oanvända eller duplicerade index.
Slutsats
Sammanfattningsvis är sys_schema ett bra verktyg för både prestandajustering och databasunderhåll. Se till att dra nytta av den här funktionen i din Azure Database for MySQL – flexibel serverinstans.