Что нужно знать о трёх топовых фичах MySQLSveta Smirnova
MySQL прочно удерживает второе по популярности место после Oracle в рейтинге DB-engines: https://db-engines.com/en/ranking_trend Репликация, табличные движки и поддержка NoSQL не дают MySQL сдавать позиции с 2012 года: года основания рейтинга. Что особенного в этих фичах? Что нужно знать, чтобы использовать их на полную мощность?
Я расскажу про дизайн. Именно он отвечает за то, чтобы ваше приложение не достигло потолка производительности. Понимание архитектуры поможет при проектирование нового приложения, которое впоследствии будет легко масштабироваться.
Доклад рассчитан для начинающих пользователей MySQL. Однако поможет освежить свои знания и более опытным.
MySQL replication has evolved a lot in 5.6 ,5.7 and 8.0. This presentation focus on the changes made in parallel replication. It covers MySQL 8.0. It was presented at Mydbops database meetup on 04-08-2016 in Bangalore.
Abstract: A histogram represents the frequency of data distribution. This histogram can help in predicting a better execution plan. MariaDB and MySQL support HIstogram. Though they serve a common purpose they are implemented differently in MariaDB and MySQL, they have their control knobs. Our Consultants ( Monu Mahto and Madhavan ) articulate how histograms can be used in your production MySQL and MariaDB databases and how it helps in bringing down the execution time.
The document provides an overview of the InnoDB storage engine used in MySQL. It discusses InnoDB's architecture including the buffer pool, log files, and indexing structure using B-trees. The buffer pool acts as an in-memory cache for table data and indexes. Log files are used to support ACID transactions and enable crash recovery. InnoDB uses B-trees to store both data and indexes, with rows of variable length stored within pages.
This document summarizes optimizations for MySQL performance on Linux hardware. It covers SSD and memory performance impacts, file I/O, networking, and useful tools. The history of MySQL performance improvements is discussed from hardware upgrades like SSDs and more CPU cores to software optimizations like improved algorithms and concurrency. Optimizing per-server performance to reduce total servers needed is emphasized.
Что нужно знать о трёх топовых фичах MySQLSveta Smirnova
MySQL прочно удерживает второе по популярности место после Oracle в рейтинге DB-engines: https://db-engines.com/en/ranking_trend Репликация, табличные движки и поддержка NoSQL не дают MySQL сдавать позиции с 2012 года: года основания рейтинга. Что особенного в этих фичах? Что нужно знать, чтобы использовать их на полную мощность?
Я расскажу про дизайн. Именно он отвечает за то, чтобы ваше приложение не достигло потолка производительности. Понимание архитектуры поможет при проектирование нового приложения, которое впоследствии будет легко масштабироваться.
Доклад рассчитан для начинающих пользователей MySQL. Однако поможет освежить свои знания и более опытным.
MySQL replication has evolved a lot in 5.6 ,5.7 and 8.0. This presentation focus on the changes made in parallel replication. It covers MySQL 8.0. It was presented at Mydbops database meetup on 04-08-2016 in Bangalore.
Abstract: A histogram represents the frequency of data distribution. This histogram can help in predicting a better execution plan. MariaDB and MySQL support HIstogram. Though they serve a common purpose they are implemented differently in MariaDB and MySQL, they have their control knobs. Our Consultants ( Monu Mahto and Madhavan ) articulate how histograms can be used in your production MySQL and MariaDB databases and how it helps in bringing down the execution time.
The document provides an overview of the InnoDB storage engine used in MySQL. It discusses InnoDB's architecture including the buffer pool, log files, and indexing structure using B-trees. The buffer pool acts as an in-memory cache for table data and indexes. Log files are used to support ACID transactions and enable crash recovery. InnoDB uses B-trees to store both data and indexes, with rows of variable length stored within pages.
This document summarizes optimizations for MySQL performance on Linux hardware. It covers SSD and memory performance impacts, file I/O, networking, and useful tools. The history of MySQL performance improvements is discussed from hardware upgrades like SSDs and more CPU cores to software optimizations like improved algorithms and concurrency. Optimizing per-server performance to reduce total servers needed is emphasized.
MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZENorvald Ryeng
This presentation focuses on two of the new features in MySQL 8.0.18: hash joins and EXPLAIN ANALYZE. It covers how these features work, both on the surface and on the inside, and how you can use them to improve your queries and make them go faster.
Both features are the result of major refactoring of how the MySQL executor works. In addition to explaining and demonstrating the features themselves, the presentation looks at how the investment in a new iterator based executor prepares MySQL for a future with faster queries, greater plan flexibility and even more SQL features.
Replication Troubleshooting in Classic VS GTIDMydbops
This presentation talk will assist you in troubleshooting MySQL replication for the most common issues we might face with a simple comparison of how can we get them solved in the different replication methods (Classic VS GTID).
- MariaDB 소개
- MariaDB 서버 구성 및 아키텍처 이해
- MariaDB 스토리지 엔진
- MariaDB 데이터베이스 관리
- 트랜잭션 / Locking 의 이해
- MariaDB 보안
- 백업과 복구를 통한 데이터베이스 관리
- MariaDB upgrade
- MariaDB 모니터링
- MySQL 에서 MariaDB 로의 전환
About the author: Priya Autee is software engineer at Intel working on various leading edge IA features and Intel(R) RDT expert. She is focused on prototyping and researching open source APIs like DPDK, Intel(R) RDT etc. to support NFV/compute sensitive requirements on Intel Architecture. She holds Masters in Computer Science from Arizona State University, Arizona.
MySQL has multiple timeouts variables to control its operations. This presentation focus on the purpose of each timeout variables and how it can be used.
MariaDB 10.5 binary install (바이너리 설치)
- 네오클로바 DB지원사업부
1. About MariaDB
1.1 MariaDB 개요
1.2 MariaDB as a R-DBMS
1.3 Open Source Database System
2. 설치
2.1 설치 기본 정보
2.2 설치 준비
2.3 MariaDB 설치
2.4 MariaDB 시작 / 접속 / 종료
2.5 추가 설정
This document discusses techniques for efficient pagination over large datasets using MySQL. The typical solution of using LIMIT and OFFSET can degrade performance as the offset increases. The document proposes using additional criteria like a "last seen" value combined with ordering to retrieve the next page without an offset. This allows fetching the next results set using an index scan. Testing showed a 6x improvement in query throughput over using large offsets. Additional enhancements like secondary indexes and caching are discussed to further optimize pagination.
O documento discute estratégias de backup para MySQL, incluindo os tipos de backup lógico e físico e a importância de validar backups restaurando-os e testando a recuperação de pontos no tempo. Também aborda tópicos como compactação, criptografia, armazenamento off-site e período de retenção para backups.
SOSCON 2019.10.17
What are the methods for packet processing on Linux? And how fast are each packet processing methods? In this presentation, we will learn how to handle packets on Linux (User space, socket filter, netfilter, tc), and compare performance with analysis of where each packet processing is done in the network stack (hook point). Also, we will discuss packet processing using XDP, an in-kernel fast-path recently added to the Linux kernel. eXpress Data Path (XDP) is a high-performance programmable network data-path within the Linux kernel. The XDP is located at the lowest level of access through SW in the network stack, the point at which driver receives the packet. By using the eBPF infrastructure at this hook point, the network stack can be expanded without modifying the kernel.
Daniel T. Lee (Hoyeon Lee)
@danieltimlee
Daniel T. Lee currently works as Software Engineer at Kosslab and contributing to Linux kernel BPF project. He has interest in cloud, Linux networking, and tracing technologies, and likes to analyze the kernel's internal using BPF technology.
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Alexis Ducastel
Présentation par Alexis Ducastel du résultat d'un benchmark de CNIs (plugin de gestion de réseau) sur Kubernetes lors du Devops D-DAY 2018 à Marseille le 15 Novembre 2018.
This document discusses bitvector operations and how they are used in the Marisa trie data structure. It begins by explaining bitvector get, rank, and select operations. It then provides an overview of Marisa tries and how they use bitvectors for LOUDS, terminal flags, and link flags. The document discusses different implementations of rank and select operations using dictionaries and binary search. It proposes improvements like removing branches from the final round of select using SSE2 instructions and tricks after comparison. The goal is to make select operations faster by removing conditional branches.
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleColin Charles
This document discusses MySQL proxy technologies including MySQL Router, ProxySQL, and MariaDB MaxScale. It provides an overview of each technology, including when they were released, key features, and comparisons between them. ProxySQL is highlighted as a popular option currently with integration with Percona tools, while MySQL Router may become more widely used due to its support for MySQL InnoDB Cluster. MariaDB MaxScale is noted for its binlog routing capabilities. Overall the document aims to help people understand and choose between the different MySQL proxy options.
The document discusses atomic DDL operations in MySQL 8.0. It describes the requirements for a transactional data dictionary storage engine and storage engines that support atomic DDL. It provides examples of how DDL statements like CREATE TABLE, DROP TABLE, and DROP SCHEMA are implemented atomically in MySQL 8.0 using a single transaction, compared to previous versions where these operations were not fully atomic. This ensures consistency after DDL operations and prevents issues like orphan files or tables.
EnterpriseDB's Best Practices for Postgres DBAsEDB
This document provides an agenda and overview for a presentation on best practices for PostgreSQL database administrators (DBAs). The presentation covers EnterpriseDB's expertise in PostgreSQL, the key responsibilities of a PostgreSQL DBA including monitoring, maintenance, capacity planning and configuration tuning. It also discusses deployment planning, professional development resources, and takes questions. Examples from architectural health checks and remote DBA services illustrate common issues found like index bloat and lack of backups. The document recommends performance monitoring and security tools and techniques for PostgreSQL.
MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZENorvald Ryeng
This presentation focuses on two of the new features in MySQL 8.0.18: hash joins and EXPLAIN ANALYZE. It covers how these features work, both on the surface and on the inside, and how you can use them to improve your queries and make them go faster.
Both features are the result of major refactoring of how the MySQL executor works. In addition to explaining and demonstrating the features themselves, the presentation looks at how the investment in a new iterator based executor prepares MySQL for a future with faster queries, greater plan flexibility and even more SQL features.
Replication Troubleshooting in Classic VS GTIDMydbops
This presentation talk will assist you in troubleshooting MySQL replication for the most common issues we might face with a simple comparison of how can we get them solved in the different replication methods (Classic VS GTID).
- MariaDB 소개
- MariaDB 서버 구성 및 아키텍처 이해
- MariaDB 스토리지 엔진
- MariaDB 데이터베이스 관리
- 트랜잭션 / Locking 의 이해
- MariaDB 보안
- 백업과 복구를 통한 데이터베이스 관리
- MariaDB upgrade
- MariaDB 모니터링
- MySQL 에서 MariaDB 로의 전환
About the author: Priya Autee is software engineer at Intel working on various leading edge IA features and Intel(R) RDT expert. She is focused on prototyping and researching open source APIs like DPDK, Intel(R) RDT etc. to support NFV/compute sensitive requirements on Intel Architecture. She holds Masters in Computer Science from Arizona State University, Arizona.
MySQL has multiple timeouts variables to control its operations. This presentation focus on the purpose of each timeout variables and how it can be used.
MariaDB 10.5 binary install (바이너리 설치)
- 네오클로바 DB지원사업부
1. About MariaDB
1.1 MariaDB 개요
1.2 MariaDB as a R-DBMS
1.3 Open Source Database System
2. 설치
2.1 설치 기본 정보
2.2 설치 준비
2.3 MariaDB 설치
2.4 MariaDB 시작 / 접속 / 종료
2.5 추가 설정
This document discusses techniques for efficient pagination over large datasets using MySQL. The typical solution of using LIMIT and OFFSET can degrade performance as the offset increases. The document proposes using additional criteria like a "last seen" value combined with ordering to retrieve the next page without an offset. This allows fetching the next results set using an index scan. Testing showed a 6x improvement in query throughput over using large offsets. Additional enhancements like secondary indexes and caching are discussed to further optimize pagination.
O documento discute estratégias de backup para MySQL, incluindo os tipos de backup lógico e físico e a importância de validar backups restaurando-os e testando a recuperação de pontos no tempo. Também aborda tópicos como compactação, criptografia, armazenamento off-site e período de retenção para backups.
SOSCON 2019.10.17
What are the methods for packet processing on Linux? And how fast are each packet processing methods? In this presentation, we will learn how to handle packets on Linux (User space, socket filter, netfilter, tc), and compare performance with analysis of where each packet processing is done in the network stack (hook point). Also, we will discuss packet processing using XDP, an in-kernel fast-path recently added to the Linux kernel. eXpress Data Path (XDP) is a high-performance programmable network data-path within the Linux kernel. The XDP is located at the lowest level of access through SW in the network stack, the point at which driver receives the packet. By using the eBPF infrastructure at this hook point, the network stack can be expanded without modifying the kernel.
Daniel T. Lee (Hoyeon Lee)
@danieltimlee
Daniel T. Lee currently works as Software Engineer at Kosslab and contributing to Linux kernel BPF project. He has interest in cloud, Linux networking, and tracing technologies, and likes to analyze the kernel's internal using BPF technology.
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Alexis Ducastel
Présentation par Alexis Ducastel du résultat d'un benchmark de CNIs (plugin de gestion de réseau) sur Kubernetes lors du Devops D-DAY 2018 à Marseille le 15 Novembre 2018.
This document discusses bitvector operations and how they are used in the Marisa trie data structure. It begins by explaining bitvector get, rank, and select operations. It then provides an overview of Marisa tries and how they use bitvectors for LOUDS, terminal flags, and link flags. The document discusses different implementations of rank and select operations using dictionaries and binary search. It proposes improvements like removing branches from the final round of select using SSE2 instructions and tricks after comparison. The goal is to make select operations faster by removing conditional branches.
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleColin Charles
This document discusses MySQL proxy technologies including MySQL Router, ProxySQL, and MariaDB MaxScale. It provides an overview of each technology, including when they were released, key features, and comparisons between them. ProxySQL is highlighted as a popular option currently with integration with Percona tools, while MySQL Router may become more widely used due to its support for MySQL InnoDB Cluster. MariaDB MaxScale is noted for its binlog routing capabilities. Overall the document aims to help people understand and choose between the different MySQL proxy options.
The document discusses atomic DDL operations in MySQL 8.0. It describes the requirements for a transactional data dictionary storage engine and storage engines that support atomic DDL. It provides examples of how DDL statements like CREATE TABLE, DROP TABLE, and DROP SCHEMA are implemented atomically in MySQL 8.0 using a single transaction, compared to previous versions where these operations were not fully atomic. This ensures consistency after DDL operations and prevents issues like orphan files or tables.
EnterpriseDB's Best Practices for Postgres DBAsEDB
This document provides an agenda and overview for a presentation on best practices for PostgreSQL database administrators (DBAs). The presentation covers EnterpriseDB's expertise in PostgreSQL, the key responsibilities of a PostgreSQL DBA including monitoring, maintenance, capacity planning and configuration tuning. It also discusses deployment planning, professional development resources, and takes questions. Examples from architectural health checks and remote DBA services illustrate common issues found like index bloat and lack of backups. The document recommends performance monitoring and security tools and techniques for PostgreSQL.
Open Source SQL databases enters millions queries per second eraSveta Smirnova
This document discusses benchmarks comparing the performance of PostgreSQL and MySQL databases. It describes running the same tests on both databases using pgbench on a 72-core server. Initial attempts using sysbench to synchronize the tests had issues with NULL handling and loading PostgreSQL. The benchmarks therefore used pgbench scripts for point selects, OLTP read-only and read-write workloads. The results showed that PostgreSQL and MySQL performance was very close. The document also discusses potential bottlenecks in PostgreSQL and ways to improve performance, such as using a true in-memory engine, faster snapshots, and asynchronous protocol.
OpenSource SQL Databases Enter Millions Queries per Second EraSveta Smirnova
Доклад прочитан на Highload++ 8 ноября 2016 года совместно с Фёдором Сигаевым и Анастасией Распопиной. Подготовка слайдов совместно с Александром Коротковым.
This document summarizes a presentation about the WiredTiger In-Memory storage engine for MongoDB compared to the standard WiredTiger B-Tree storage engine. The Percona Memory Engine can provide up to 1000 times faster performance for OLTP workloads and 10 times faster reads compared to WiredTiger by storing data entirely in memory instead of on disk. It uses WiredTiger's document-level locking and B-Tree structure but without disk access. Typical use cases for the in-memory engine include caching, session storage, and temporary collections. The presentation provides examples of how to configure and optimize the engine for different scenarios including replica sets, sharded clusters, and combining it with WiredTiger for persistence.
This document discusses new SQL syntax and query rewrite plugins in MySQL. It introduces FILTER clauses and custom optimizer hints and describes how to implement them using query rewrite plugins. Key points covered include the plugin interface, parsing and rewriting queries, managing memory, and customizing variables. The goal is to add new SQL features and control query execution through simple syntax extensions. Examples of implementing FILTER clauses and custom optimizer hints are provided to demonstrate how rewrite plugins work.
Percona Live 2016 (https://www.percona.com/live/data-performance-conference-2016/sessions/why-use-explain-formatjson). Although EXPLAIN FORMAT=JSON was first presented a long time ago, there still aren't many resources that explain how and why to use it. The most advertised feature is visual EXPLAIN in MySQL Workbench, but this format can do more than create nice pictures. It prints additional information that can't be found in good old tabular EXPLAIN, and can help to solve many tricky performance issues. In this session, I will not only describe which additional information we can get with the new syntax, but also provide examples showing how to use it to diagnose production issues.
New features in Performance Schema 5.7 in actionSveta Smirnova
New features in Performance Schema 5.7 in action provides an overview of Performance Schema improvements in MySQL 5.7 and 8.0 including new tables, instruments, and variables. It demonstrates how to use Performance Schema to diagnose locks, memory usage, stored routines, and prepared statements. Examples show identifying blocking locks, measuring memory usage by thread, and instrumentation of stored procedure execution and prepared statement statistics.
MySQL Replication Troubleshooting for Oracle DBAsSveta Smirnova
MySQL Replication Troubleshooting for Oracle DBAs discusses MySQL replication, including how it works, typical issues, and troubleshooting tools. Replication is asynchronous by default and involves a master writing binary logs and a slave reading the logs with its IO and SQL threads. Issues like data inconsistencies or replication failures can occur. The document outlines tools for monitoring replication like the error log, SHOW SLAVE STATUS, and performance schemas.
Using Apache Spark and MySQL for Data AnalysisSveta Smirnova
The document discusses using Apache Spark and MySQL for data analysis. It provides examples of loading Wikipedia usage statistics (Wikistats) data into both MySQL and Spark for analysis. Loading the full 10+ TB of Wikistats data into MySQL took over a month, while Spark was able to scan and analyze the entire dataset in under an hour by leveraging its ability to perform distributed, parallel processing across multiple nodes. The document compares key differences between Spark and MySQL for big data processing, such as Spark's lack of indexes but ability to perform full scans in parallel across nodes.
Performance Schema for MySQL TroubleshootingSveta Smirnova
Percona Live (https://www.percona.com/live/data-performance-conference-2016/sessions/performance-schema-mysql-troubleshooting)
The performance schema in MySQL version 5.6, released in February, 2013, is a very powerful tool that can help DBAs discover why even the trickiest performance issues occur. Version 5.7 introduces even more instruments and tables. And while all these give you great power, you can get stuck choosing which instrument to use.
In this session, I will start with a description of a typical problem, then guide you how to use the performance schema to find out what causes the issue, the reason for unwanted behavior and how the received information can help you solve a particular problem.
Traditionally, performance schema sessions teach what is in contained in tables. I will, in contrast, start from a performance issue, then demonstrate which instruments and tables can help solve it. We will discuss how to setup the performance schema so that it has minimal impact on your server.
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...Ontico
РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 17:00
Тезисы:
http://backendconf.ru/2017/abstracts/2777.html
В сложной ситуации хорошо иметь под рукой детали: сообщения об ошибках, статистику времени выполнения запросов, данные о производительности операционной системы и железа. Много деталей! Современные версии MySQL позволяют собрать информацию практически обо всём. Однако любой включённый мониторинг имеет свою цену: производительность. Именно поэтому универсального решения "всё включено", подходящего для любого MySQL-приложения, не существует. Даже при использовании инструментов с графическим интерфейсом у вас всегда есть выбор: что отслеживать и что нет.
В докладе я хочу обсудить, какие опции должны быть включены всегда, какие опциональны и при каких обстоятельствах их включать. Мы рассмотрим встроенные возможности MySQL, Percona-серверов и внешние решения.
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5DevDay
Григорий Рубцов — руководитель проектов SQLinfo.ru (http://sqlinfo.ru/) и Webew.ru (http://webew.ru/), автор онлайн-курса по MySQL (http://sqlinfo.ru/classes/) и спикер конференции РИТ++.
Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
Обзор возможностей:
— новое для разработчика;
— новое для администратора;
— улучшения производительности;
— миграция и вопросы совместимости.
Технические детали:
— хранилище XtraDB;
— Percona Tools;
— алгоритмы оптимизации подзапросов в MariaDB.
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьTanya Denisyuk
После этого доклада вы будете знать, что такое Handlersocket, нужен ли он вам и «как его готовить».
Все как обычно — грабли, шишки, слезы из реальной жизни, направления «куда копать», примеры из практики. Вместе с докладом Сергей выложит код самописного php-клиента для HS, который мы используем в Badoo.
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaSveta Smirnova
MySQL всегда использовали под высокой нагрузкой. Недаром эта база была и остаётся самым популярным бэкэндом для web. Однако наши представления о хайлоде с каждым годом расширяются. Большая скорость передачи данных -> больше устройств с подключением к интернет -> больше пользователей -> больше данных.
Задачи, стоящие перед разработчиками MySQL, с каждым годом усложняются.
В этом докладе я расскажу как менялись сценарии использования MySQL за [почти] 25 лет её истории и что делали инженеры, чтобы MySQL оставалась актуальной. Мы затронем такие темы, как работа с большим количеством активных соединений и высокими объёмами данных. Я покажу насколько современные версии лучше справляются с возросшими нагрузками.
Я надеюсь, что после моего доклада те слушатели, которые используют старые версии, захотят обновиться и те, кто уже обновились, узнают как использовать современный MySQL на полную мощность.
Прочитана на конференции OST 2020: https://ostconf.com/materials/2857#2857
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...IT-Portfolio
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Когда надо изобретать свой велосипед? Строим NoSQL хранилище в приемлемые сроки", Александр Календарёв (разработчик РБК-Медиа Холдинг / Love Planet)
Аннотация
- Что из себя представляет Современная служба знакомств (крупная соцсеть в миниатюре).
- Какие задачи мы решаем и немного про общую архитектуру проекта.
- Обзор про существующие key/value решения
- Почему не нас не устроили memcachedb, redis, tarantool или MongoDВ...
- Какие велосипеды пришлось изобретать и что взяли готовое.
- Протокол обмена, почему выбрали memcached
- Как и зачем расширять существующие протоколы
- Как устроено хранилище изнутри (на базе key/value Hash & Tree), немного скучной теории про структуры данных, полезно тем, кто все же рискнет написать что-то своё.
- какие key/value АПИ можно еще использовать.
- Проблемы здоровья хранилища или зачем и как делать Мониторинг.
- возможность масштабирования, проблемы и пути решения.
Биография
Опыт в IT индустрии 15 лет, кандидат наук. Докладчик на Hi++ 2011, ADDConf-2, DevConf 2012, PHPConf 2009 и других. Автор блога highloadblog.ru. Круг интересов: хранение и обработка данных.
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Badoo Development
Мы уже около 3-х лет используем HandlerSocket в нашей инфраструктуре сайта badoo.com. За это время мы накопили опыт решения характерных для Handlersocket проблем, появляющихся при использовании.
Несколько команд внутри Баду активно используют HS для решения разноплановых задач мобильных и настольных приложений Баду. Где-то мы используем HS как замену Memcached, где-то как простой поисковый механизм, где-то как хранилище типа ключ-значение. Наш HS-кластер содержит более 30 серверов, обрабатывая порядка 8000 запросов/сек.
Спикер также предоставляет написанный им код библиотеки-клиента для Handlersocket на PHP.
Про что доклад:
• что это вообще такое;
• чем является HS и чем не является;
• внутреннее устройство и работа HS;
• протокол;
• примеры использования в Баду, с цифрами и графиками;
• особенности: шардирование, Percona Server, постоянные соединения (бенефиты, проблемы и их решения), tips & tricks;
• полезные сслыки, ответы на FAQ.
Доклад рассчитан на highload-разработчиков, работающих с реляционными БД.
Контроль качества высоконагруженных систем / Андрей Дроздов (Avito)Ontico
HighLoad++ 2017
Зал «Конгресс-Холл», 8 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/2972.html
Разработка любого высоконагруженного сервиса не обходится без нагрузочных тестов. Во многих проектах процесс анализа работы системы под большой нагрузкой слабо структурирован или выполняется непосредственно в бою. Есть масса статьей и рецептов использования тех или иных инструментов, но самые важные вопросы не раскрыты до конца: что именно мы должны измерять, правильно ли мы интерпретируем результаты и как ловить баги, которые проявляются только под высокой нагрузкой.
...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Ontico
Широко распространено мнение, что SQL СУБД обречены быть медлительными и неповоротливыми, поскольку несут груз совместимости с предыдущими версиями. Это расхожее мнение широко эксплуатируется маркетингом NoSQL СУБД. Однако, это не всегда действительно так.
Разработка в Open Source сообществе позволяет продукту развиваться достаточно гибко, чтобы отвечать требованиям времени. В MySQL и PostgreSQL – самых популярных Open Source СУБД – недавно были проведены оптимизации для работы на больших серверах, что позволило им выполнять более миллиона SQL-запросов в секунду на одном экземпляре БД.
В данном докладе будут рассмотрены конкретные оптимизации, которые позволили добиться таких результатов, которые раньше могли бы показаться фантастическими. И можно сказать, что Open Source СУБД вошли в эру миллионов запросов в секунду.
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
Оперативная память становится всё более дешёвой и производительной, что позволяет использовать её для хранения рабочего набора данных всё большего числа приложений. Хранение всех данных в оперативной памяти позволяет сделать их высоко доступными, а алгоритмы для работы с данными либо существенно упростить, либо ускорить, а иногда — и то, и другое.
Тезисы - http://www.highload.ru/2015/abstracts/1964.html
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
Доклад от Parallels:
Методики тестировния производительности database-centric приложений
Описание: При работе над сложными продуктами в database-centric приложениях изменения в коде и тем более в SQL запросах к базе данных могут приводить к неожиданным падениям производительности или же деградации производительности приложения с ростом размера базы данных. Поэтому важно уметь как можно быстрее отлавливать и исправлять причины таких деградаций.
Доклад о том, как устроен процесс мониторинга производительности продукта автоматизации хостинга и облачных сервисов Parallels Automation, для которого определяющим фактором является производительность базы данных.
Компания покажет, как анализирует планы исполнения SQL запросов внутри PostgreSQL, как проверяет насколько быстро и эффективно в целом работают SQL запросы, как определяет стратегию дальнейшей оптимизации.
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?Sveta Smirnova
25 октябрая 2023 года Oracle прекратила активную поддержку MySQL 5.7.
Это значит, что стоит присмотреться к улучшениям в версии 8:
- Новому системному словарю
- Современному SQL
- Поддержке JSON, NoSQL, MySQL Shell, и возможности работать с MySQL как с MongoDB
- Улучшениям в оптимизаторе запросов и диагностике
Мой доклад для разработчиков приложений под MySQL. Я не буду рассказывать как конфигурировать сервер и сфокусируюсь на его использовании.
Database in Kubernetes: Diagnostics and MonitoringSveta Smirnova
Kubernetes is the new cool in 2023. Many database installations are on Kubernetes now. And this creates challenges for Support engineers because traditional monitoring and diagnostic tools work differently on bare hardware and Kubernetes. In this session, I will focus on differences in methods we use to collect metrics, describe challenges that Percona Support hits when working with database installations on Kubernetes, and discuss how we resolve them. This talk will cover all database technologies we support: MySQL, MongoDB, and PostgreSQL.
Presented at Percona Live 2023
MySQL Database Monitoring: Must, Good and Nice to HaveSveta Smirnova
It is very easy to find if a database installation is having issues. You only need to enable Operating System monitoring. A disk, memory, or CPU usage change will alert you about the problems. But they would not show *why* the trouble happens. You need the help of database-specific monitoring tools.
As a Support Engineer, I am always very upset when handling complaints about the database behavior lacking specific database monitoring data because I cannot help!
There are two reasons database and system administrators do not enable necessary instrumentation. The first is a natural or expected performance impact. Second is the lack of knowledge on what needs to be on to resolve a particular issue.
In this talk, I will cover both concerns.
I will show which monitoring instruments will give information on what causes disk, memory, or CPU problems.
I will teach you how to use them.
I will uncover which performance impact these instruments have.
I will use both MySQL command-line client and open-source graphical instrument Percona Monitoring and Management (PMM) for the examples.
This document provides an overview of the MySQL Cookbook by O'Reilly. It discusses the intended audience of database administrators and developers. It also demonstrates different ways of interacting with MySQL, including through the command line interface, MySQL Shell, and X DevAPI. Examples are provided for common tasks like reading, writing, and updating data in both standard SQL and the object-oriented X DevAPI.
MySQL performance can be improved by tuning queries, server options, and hardware. Traditionally it was an area of responsibility for three different roles: Development, DBA, and System Administrators. Now DevOps handle these all. But there is a gap. Knowledge gained by MySQL DBAs after years or focusing on a single product is hard to gain when you focus on more than one. This is why I am doing this session. I will show a minimal but most effective set of options to improve MySQL performance. For illustrations, I will use real user stories gained from my Support experience and Percona Kubernetes operators for PXC and MySQL.
MySQL Test Framework для поддержки клиентов и верификации баговSveta Smirnova
Talk for TestDriven Conf: https://tdconf.ru/2022/abstracts/8763
MySQL Test Framework (MTR) — это фреймворк для регрессионных тестов MySQL. Тесты для него пишут разработчики MySQL и запускаются во время подготовки к новым релизам.
MTR можно использовать и по-другому. Я его использую, чтобы тестировать проблемы, о которых сообщают клиенты, и подтверждать сообщения об ошибках (bug reports) одновременно на нескольких версиях MySQL.
При помощи MTR можно:
* программировать сложные развёртывания;
* тестировать проблему на нескольких версиях MySQL/Percona/MariaDB-серверов при помощи одной команды;
* тестировать несколько одновременных соединений;
* проверять ошибки и возвращаемые значения;
* работать с результатами запросов, хранимыми процедурами и внешними командами.
Тест может быть запущен на любой машине с MySQL-, Percona- или MariaDB-сервером.
Я покажу, как я работаю с MySQL Test Framework, и надеюсь, что вы тоже полюбите этот инструмент.
This document provides an overview of different ways to work with MySQL using standard SQL, X DevAPI, and MySQL Shell utilities. It discusses querying, updating, and exporting/importing data using these different approaches. It also covers topics like character encoding, generating summaries, storing errors, and retrieving metadata. Examples are provided to illustrate concepts like selecting, grouping, joining, changing data, common table expressions, and more using SQL and X DevAPI. MySQL Shell utilities for exporting/importing CSV, JSON, and working with collections are also demonstrated.
Introduction into MySQL Query Tuning for Dev[Op]sSveta Smirnova
Percona Live Online 2021 talk: https://www.percona.com/resources/videos/introduction-mysql-query-tuning-for-devops
In this talk I will show how to get started with MySQL Query Tuning. I will make a short introduction into physical table structure and demonstrate how it may influence query execution time.
Then we will discuss basic query tuning instruments and techniques, mainly EXPLAIN command with its latest variations. You will learn how to understand its output and how to rewrite queries or change table structure to achieve better performance.
Talk for the DevOps Pro Moscow 2021: https://www.devopspro.ru/Sveta-Smirnova/
Производительность MySQL можно улучшить при помощи оптимизации запросов, настроек MySQL сервера и железа. Традиционно эти задачи распределялись между тремя ролями: Разработчик, Администратор баз данных и Системный Администратор. Теперь же все эти задачи решает DevOps, что непросто для одного человека. В этом докладе я расскажу об основных оптимизациях, которые решают большинство проблем производительности MySQL. Для иллюстраций я буду использовать реальные пользовательские истории и Percona Kubernetes Operator.
This document provides an overview of optimizing MySQL performance for DevOps. It discusses hardware configuration including memory, disk, CPU and network. It covers important MySQL configuration options like InnoDB settings. It also discusses query tuning techniques like using indexes to improve query performance.
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB ClusterSveta Smirnova
Percona XtraDB Cluster (PXC) is a 100% synchronized cluster in regards to DML operations. It is ensured by the optimistic locking model and ability to rollback transaction which cannot be applied on all nodes. However, DDL operations are not transactional in MySQL. This adds complexity when you need to change the schema of the database.
Changes made by DDL may affect the results of the queries. Therefore all modifications must replicate on all nodes prior to the next data access. For operations that run momentarily, it can be easily achieved, but schema changes may take hours to apply. Therefore in addition to the safest synchronous blocking schema upgrade method: TOI, - PXC supports more relaxed, though not safe, method RSU.
RSU: Rolling Schema Upgrade is advertised to be non-blocking. But you still need to take care of updates, running while you are performing such an upgrade. Surprisingly, even updates on not related tables and schema can cause RSU operation to fail.
In this talk, I will uncover nuances of PXC schema upgrades and point to details you need to take special care about.
Further Information
Schema change is a frequent task, and many do not expect any surprises with it. However, the necessity to replay the changes to all synchronized nodes adds complexity. I made a webinar on a similar topic which was recorded and available for replay. Now I have found that I share a link to the webinar to my Support customers approximately once per week. Not having a good understanding of how schema change works in the cluster leads to lockups and operation failures. This talk will provide a checklist that will help to choose the best schema change method.
Presented at Percona Live Online: https://perconaliveonline2020.sched.com/event/ePm2/how-to-avoid-pitfalls-in-schema-upgrade-with-percona-xtradb-cluster
How to migrate from MySQL to MariaDB without tearsSveta Smirnova
Presented at MariaDB Server Fest 2020: https://mariadb.org/fest2020/migrate-mysql/
MariaDB is a drop-in replacement for MySQL. Initial migration is simple: start MariaDB over the old MySQL datadir.
Later your application may notice that some features work differently than with MySQL. These are MariaDB improvements, so this is good and, likely the reason you migrated.
In this session, I will focus on the differences affecting application performance and behavior. In particular, features sharing the same name, but working differently.
Modern solutions for modern database load: improvements in the latest MariaDB...Sveta Smirnova
Presented at MariaDB Server Fest 2020: https://mariadb.org/fest2020/improvements/
MariaDB is famous for working well in high-performance environments. But our view of what to call high-performance changes over time. Every year we get faster data transfer speed; more devices connected to the Internet; more users and, as a result, more data.
Challenges, which developers have to solve, are getting harder. This session shows what engineers do to keep the product up to date, focusing on MariaDB improvements that make it different from its predecessor, MySQL.
How Safe is Asynchronous Master-Master Setup?Sveta Smirnova
Presented at Percona MySQL Tech Day on September 10, 2020: https://www.percona.com/tech-days#mysql
It is common knowledge that built-in asynchronous active-active replication is not safe. I remember times when the official MySQL User Reference Manual stated that such an installation is not recommended for production use. Some experts repeat this claim even now.
While this statement is generally true, I worked with thousands of shops that successfully avoided asynchronous replication limitations in active-active setups.
In this talk, I will show how they did it, demonstrate situations when asynchronous source-source replication is the best possible high availability option and beats such solutions as Galera or InnoDB Clusters. I will also cover common mistakes, leading to disasters.
How to Avoid Pitfalls in Schema Upgrade with GaleraSveta Smirnova
This document discusses different methods for performing schema upgrades in a Galera cluster, including Total Order Isolation (TOI), Rolling Schema Upgrade (RSU), and the pt-online-schema-change tool. TOI blocks the entire cluster during DDL but ensures consistency, while RSU allows upgrades without blocking the cluster but requires stopping writes and carries risks of inconsistency. Pt-online-schema-change performs non-blocking upgrades using triggers to copy rows to a new table in chunks.
How Safe is Asynchronous Master-Master Setup?Sveta Smirnova
This document discusses the risks of using asynchronous master-master replication for MySQL databases and provides strategies for setting it up safely. It explains that having two nodes actively accepting writes can lead to conflicts like duplicate key errors. It recommends dividing writes across nodes by database, table, or row to avoid conflicts. The document also discusses using synchronous replication tools like Galera to ensure consistency across nodes at the cost of reduced performance.
Introduction to MySQL Query Tuning for Dev[Op]sSveta Smirnova
To get data, we query the database. MySQL does its best to return requested bytes as fast as possible. However, it needs human help to identify what is important and should be accessed in the first place.
Queries, written smartly, can significantly outperform automatically generated ones. Indexes and Optimizer statistics, not limited to the Histograms only, help to increase the speed of the query a lot.
In this session, I will demonstrate by examples of how MySQL query performance can be improved. I will focus on techniques, accessible by Developers and DevOps rather on those which are usually used by Database Administrators. In the end, I will present troubleshooting tools which will help you to identify why your queries do not perform. Then you could use the knowledge from the beginning of the session to improve them.
Billion Goods in Few Categories: How Histograms Save a Life?Sveta Smirnova
We store data with an intention to use it: search, retrieve, group, sort... To do it effectively the MySQL Optimizer uses index statistics when compiles the query execution plan. This approach works excellently unless your data distribution is not even.
Last year I worked on several tickets where data follow the same pattern: millions of popular products fit into a couple of categories and rest used the rest. We had a hard time to find a solution for retrieving goods fast. We offered workarounds for version 5.7. However new MariaDB and MySQL 8.0 feature: histograms, - would work better, cleaner and faster. The idea of the talk was born.
Of course, histograms are not a panacea and do not help in all situations.
I will discuss:
how index statistics physically stored by the storage engine
which data exchanged with the Optimizer
why it is not enough to make correct index choice
when histograms can help and when they cannot
differences between MySQL and MariaDB histograms
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...Sveta Smirnova
Last year this session’s speaker worked on several cases where data followed the same pattern: millions of popular products fit into a couple of categories, and the rest uses the rest. Her team had a hard time finding a solution for retrieving goods quickly. MySQL 8.0 has a feature that resolves such issues: optimizer histograms, storing statistics of an exact number of values in each data bucket. In real life, histograms don’t help with all queries accessing nonuniform data. How you write a statement, the number of rows in the table, data distribution: All of these may affect the use of histograms. This presentation shows examples demonstrating how the optimizer works in each case, describes how to create histograms, and covers differences between MySQL and Oracle implementations.
Billion Goods in Few Categories: How Histograms Save a Life?Sveta Smirnova
We store data with an intention to use it: search, retrieve, group, sort... To do it effectively, the MySQL Optimizer uses index statistics when it compiles the query execution plan. This approach works excellently unless your data distribution is not even.
Last year I worked on several support tickets where data follows the same pattern: millions of popular products fit into a couple of categories and the rest used the rest. We had a hard time finding a solution for retrieving goods fast. We offered workarounds for version 5.7. However, a new MariaDB and MySQL 8.0 feature - histograms - would work better, cleaner and faster. The idea of the talk was born.
Of course, histograms are not a panacea and do not help in all situations.
I will discuss
- how index statistics physically stored by the storage engine
- which data exchanged with the Optimizer
- why it is not enough to make correct index choice
- when histograms can help and when they cannot
- differences between MySQL and MariaDB histograms
Talk for Percona Live 2019 Austin: https://www.percona.com/live/19/sessions/billion-goods-in-few-categories-how-histograms-save-a-life
2. ∙
Инженер тех. поддержки MySQL
∙ Автор
∙ MySQL Troubleshooting
∙ JSON UDF функции
∙ FILTER clause для MySQL
∙ Докладчик
∙ Percona Live, OOW, Fosdem,
DevConf, ...
Света Смирнова
2
5. ∙
Плохо написанные запросы
∙
Таблицы со странной структурой
∙ Не нормализованы
∙ Десятки столбцов типа "Characteristic N"
Отладка или настройка производительности?
4
17. ∙
Журналы вашего приложения
∙
General query log
∙
Slow query log
∙
performance_schema.events_statements_*
∙
Scriptable Proxies
Как найти медленный запрос?
10
18. ∙
Журналы вашего приложения
∙
General query log
∙
Slow query log
∙
performance_schema.events_statements_*
∙
Scriptable Proxies
∙ Audit Plugin
Как найти медленный запрос?
10
19. ∙
Журналы вашего приложения
∙
General query log
∙
Slow query log
∙
performance_schema.events_statements_*
∙
Scriptable Proxies
∙ Audit Plugin
∙ Жалобы пользователей
Как найти медленный запрос?
10
20. Запрос отправлен
Connection Pool: Авторизация, Caches; SQL-интерфейс; Parser
Optimizer
Storage engines
Hardware
Схема выполнения запроса
11
21. mysql> explain extended select * from t1 join t2 where t1.int_key=1;
+----+-------------+-------+-------+---------------+---------+---------+-------+------+------+---------
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | f... | Extra
+----+-------------+-------+-------+---------------+---------+---------+-------+------+------+---------
| 1 | SIMPLE | t1 | ref | int_key,ik | int_key | 5 | const | 4 | 100. | NULL
| 1 | SIMPLE | t2 | index | NULL | pk | 9 | NULL | 6 | 100. | Using in
Using join
(Block Nest
+----+-------------+-------+-------+---------------+---------+---------+-------+------+------+---------
2 rows in set, 1 warning (0.00 sec)
Note (Code 1003): /* select#1 */ select ‘test‘.‘t1‘.‘pk‘ AS ‘pk‘,‘test‘.‘t1‘.‘int_key‘ AS ‘int_key‘,‘te
AS ‘pk‘,‘test‘.‘t2‘.‘int_key‘ AS ‘int_key‘ from ‘test‘.‘t1‘ join ‘test‘.‘t2‘ where (‘test‘.‘t1‘.‘int_ke
Номер запроса
Тип запроса
Таблицы, для которых выведена информация
Как данные выбираются
Возможные ключи
Использованный ключ
Длина ключа
Какие строки сравнивались с ключом
Сколько строк просмотрено
% отфильтрованных строк
rows x filtered / 100 — строки,
которые будут объединены с другой таблицей
Дополнительная информация
Таблица, для которой выведена информация
Сколько строк должно быть просмотрено
Здесь 4*6 = 24
Оптимизированный запрос
MySQL EXPLAIN: общее представление
12
39. ∙ Блокировки метаданных (MDL)
∙ Табличные блокировки
Какие виды блокировок поддерживает MySQL?
17
40. ∙ Блокировки метаданных (MDL)
∙ Табличные блокировки
∙ Устанавливаемые табличным движком
∙
Построчные
∙ Могут быть любыми или может не быть
вообще
Какие виды блокировок поддерживает MySQL?
17
41. Запрос отправлен
Уровень сервера: MDL и табличные блокировки
Уровень движка: построчные; любые другие, поддерживаемые движком
Уровень оборудования: мы можем ими управлять только косвенно
Запрос: когда устанавливаются блокировки
18
42. ∙ Уровень сервера
∙ MDL: транзакционные
∙ Табличные: нет
∙ Уровень движка
∙ Табличные
∙ Построчные
∙ Любые поддерживаемые
Блокировки и транзакции
19
43. ∙
MDL
∙
Какое соединение ждёт освобождения MDL?∙ SHOW PROCESSLIST - 5.5+
I_S.PROCESSLIST - 5.5+
P_S.THREADS - 5.7+
P_S.METADATA_LOCKS - 5.7+
Диагностика
20
45. ∙
MDL
∙
Табличные
∙ Что ждёт освобождения табличной
блокировки?
SHOW PROCESSLIST
I_S.PROCESSLIST - 5.1+
P_S.THREADS - 5.7 +
P_S.TABLE_HANDLES - 5.7+
Диагностика
20
46. ∙
MDL
∙
Табличные
∙ Что ждёт освобождения табличной
блокировки?
∙ Что держит блокировку?
P_S.TABLE_HANDLES
SHOW ENGINE INNODB STATUS - Table scan и подобные операции
Диагностика
20
48. ∙
MDL
∙
Табличные
∙
Построчные InnoDB
∙ Что ждёт освобождения блокировки?
∙
Что держит построчную блокировку InnoDB?
∙ INNODB_LOCK_WAITS
InnoDB Monitor
InnoDB Lock Monitor
Диагностика
20
49. ∙
MDL
∙
Табличные
∙
Построчные InnoDB
∙ Что ждёт освобождения блокировки?
∙
Что держит построчную блокировку InnoDB?
∙ Компактное представление
∙ I_S.INNODB_LOCKS
Нет информации о том что ждёт и что держит!
Диагностика
20
50. ∙
MDL
∙
Табличные
∙
Построчные InnoDB
∙ Что ждёт освобождения блокировки?
∙
Что держит построчную блокировку InnoDB?
∙ Компактное представление
∙
Диагностика deadlock-ов
InnoDB Monitors
innodb_print_all_deadlocks - запись в error log
Диагностика
20
56. ∙
Нехватка ресурсов
∙
Сервер "зависает"
∙
Запросы выполняются медленно
∙ OOM killer убивает процесс mysqld
∙ MySQL не использует имеющиеся ресурсы
∙
Сервер "зависает"
Основные проблемы с оборудованием
22
57. ∙
Нехватка ресурсов
∙
Сервер "зависает"
∙
Запросы выполняются медленно
∙ OOM killer убивает процесс mysqld
∙ MySQL не использует имеющиеся ресурсы
∙
Сервер "зависает"
∙ Запросы выполняются медленно
Основные проблемы с оборудованием
22
58. ∙
Нехватка ресурсов
∙
Сервер "зависает"
∙
Запросы выполняются медленно
∙ OOM killer убивает процесс mysqld
∙ MySQL не использует имеющиеся ресурсы
∙
Сервер "зависает"
∙ Запросы выполняются медленно
∙ Крэши
Основные проблемы с оборудованием
22
59. ∙
Нехватка ресурсов
∙
Сервер "зависает"
∙
Запросы выполняются медленно
∙ OOM killer убивает процесс mysqld
∙ MySQL не использует имеющиеся ресурсы
∙
Сервер "зависает"
∙ Запросы выполняются медленно
∙ Крэши
∙ Вообще-то это хорошее и дорогое
оборудование!
Основные проблемы с оборудованием
22
60. ∙
Нехватка ресурсов
∙
Сервер "зависает"
∙
Запросы выполняются медленно
∙ OOM killer убивает процесс mysqld
∙ MySQL не использует имеющиеся ресурсы
∙ Нагрузка в самом деле небольшая
Основные проблемы с оборудованием
22
62. ∙ Глобальные буферы
∙ Выделяются при старте
∙
Никогда не освобождаются
Как сервер MySQL использует память?
24
63. ∙ Глобальные буферы
∙ Буферы соединений
∙ Выделяются для каждого соединения
∙
Освобождаются при закрытии
Как сервер MySQL использует память?
24
64. ∙ Глобальные буферы
∙ Буферы соединений
∙ Буферы, специфические для операций
∙
Выделяются под операцию
join_buffer_size - для каждой таблицы в JOIN
tmp_table_size - для каждой временной таблицы
...
∙ Освобождаются при завершении
Как сервер MySQL использует память?
24
65. ∙ Глобальные буферы
∙ Буферы соединений
∙ Буферы, специфические для операций
∙
"Внутренние" буферы
∙ Пользователь не может контролировать
Как сервер MySQL использует память?
24
72. ∙ Данные в таблицах
∙ Файлы журналов
∙ Binary
∙ Движка
InnoDB Redo Log Files
∙ General, Audit
Что пишется на диск?
28
73. ∙ Данные в таблицах
∙ Файлы журналов
∙ Binary
∙ Движка
InnoDB Redo Log Files
∙ General, Audit
∙ Временные таблицы, не помещающиеся в
память
Что пишется на диск?
28
81. ∙ Сообщения между клиентом и сервером
∙
Обычный клиент
Как MySQL использует сеть?
31
82. ∙ Сообщения между клиентом и сервером
∙
Обычный клиент
∙ Приложение
Как MySQL использует сеть?
31
83. ∙ Сообщения между клиентом и сервером
∙
Обычный клиент
∙ Приложение
∙ Replication IO thread
Как MySQL использует сеть?
31
84. ∙ Сообщения между клиентом и сервером
∙
Обычный клиент
∙ Приложение
∙ Replication IO thread
∙ Трафик между нодами PXC
Как MySQL использует сеть?
31
85. ∙ –log-warnings=2
∙ ∙ Не так много информации как хочется
∙
Обрывы соединений
Встроенная диагностика сети
32
89. ∙ Таблицы accounts, users, hosts
∙ Connection attributes
∙ Host Cache
∙ Содержимое DNS кэша
∙
Ошибки: Name Server, соединений,
авторизации, max_connect_errors,
max_user_errors и т.д.
Диагностика в Performance Schema
33
90. ∙ Глобальные
∙ Контролируют параметры, необходимые для
всего сервера
Размещение файлов: datadir и т.п.
Совместно используемые буфера
Другие
Системные переменные: сфера действия
34
91. ∙ Глобальные
∙ Контролируют параметры, необходимые для
всего сервера
Размещение файлов: datadir и т.п.
Совместно используемые буфера
Другие
∙ Сессионные
∙
Контролируют параметры, имеющие
отношение к открытой сессии
Системные переменные: сфера действия
34
92. ∙ Глобальные
∙ Контролируют параметры, необходимые для
всего сервера
Размещение файлов: datadir и т.п.
Совместно используемые буфера
Другие
∙ Сессионные
∙
Контролируют параметры, имеющие
отношение к открытой сессии
∙ MySQL option tables
Системные переменные: сфера действия
34
94. ∙
Тестируйте!
∙ Отладку можно начинать с любого места
∙ Медленные запросы
∙ Блокировки
∙
Настройки
∙ Оборудование
∙ Итерации!
Итоги
36
95. ∙
Медленные запросы
∙ EXPLAIN Syntax
∙ EXPLAIN FORMAT=JSON is Cool!
∙
Дополнительные материалы к семинару
∙
Optimizer Hints
∙ Custom Hint Plugin
∙ Troubleshooting Slow Queries webinar
Больше информации
37
96. ∙
Медленные запросы
∙
Блокировки
∙
InnoDB Locking Explained With Stick Figures
∙ InnoDB блокировки в официальном
руководстве
∙
Типы блокировок InnoDB
∙
Разбираемся с блокировками в MySQL Server
∙ Troubleshooting Locking Issues webinar
Больше информации
37
97. ∙ Медленные запросы
∙ Блокировки
∙
Оборудование
∙ Linux Performance by Brendan D. Gregg
∙
Memory Summary tables in Performance Schema
∙ Troubleshooting hardware resource usage webinar
Больше информации
37
98. ∙ Медленные запросы
∙ Блокировки
∙ Оборудование
∙ Настройки
∙ MySQL Option Tables
∙
List of variables introduced in Percona Server
∙ Galera Cluster System Variables
∙ Troubleshooting configuration issues webinar
Больше информации
37
99. ∙ Медленные запросы
∙ Блокировки
∙ Оборудование
∙ Настройки
∙ Обо всём∙ Книги
MySQL Trouleshooting
High Performance MySQL
∙ Блоги
Planet MySQL
Percona Data Performance Blog
Больше информации
37