Доклад Сергея Аверина на 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-разработчиков, работающих с реляционными БД.
Основные команды языка SQLAimurat AdilbekovТемы:
1.Возможности команды SELECT языка SQL
2.Выполнение основной команды SELECT
3.Различия между командами SQL и iSQL*Plus
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьTanya DenisyukПосле этого доклада вы будете знать, что такое Handlersocket, нужен ли он вам и «как его готовить».
Все как обычно — грабли, шишки, слезы из реальной жизни, направления «куда копать», примеры из практики. Вместе с докладом Сергей выложит код самописного php-клиента для HS, который мы используем в Badoo.
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...pgdayrussiaДоклад был представлен на официальной российской конференции PG Day'14 Russia, посвященной вопросам разработки и эксплуатации PostgreSQL.
Уникальный семинар от опытного "базиста" Ивана Фролкова призван наглядно пояснить слушателям адекватность применения реляционных СУБД на задачах веба. В рамках доклада Иван рассмотрит типичные "грабли", на которые натыкаются разработчики, и субоптимальные решения, изобретаемые с целью побороть возникшие проблемы. В качестве альтернативы, коллега Фролков наглядно пояснит, как эти же задачи решаются штатными средствами PostgreSQL.
В качестве бонуса Иван — "ветеран" промышленной разработки ПО для реляционных СУБД — проведет краткий ликбез по рекомендуемым практикам построения SQL-запросов и программирования на языке PL/PGSQL.
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...OnticoИндексы
- типы индексов;
- типы доступа к таблице;
- составные индексы (когда они работают);
- получение информации об индексе (show index; - описание формата);
- примеры с поиском по нескольким полям и сортировкой: какие индексы будут использоваться, а какие нет;
- что делать в случае нескольких условий по диапазону;
- как сервер выбирает индекс, который будет использован;
- директивы use/force/ignore index.
EXPLAIN
- как работает оптимизатор запросов;
- недостатки explain;
- explain extended;
- получение sql запроса, восстановленного из плана;
- формат выводимой explain информации:
-- что означает каждый столбец;
-- какие значения принимает (для extra только самые часто встречающиеся);
-- на что обратить внимание с точки зрения производительности;
-- как правильно читать план-разбор сложного примера с join-ами, подзапросами (обычными и from) и union-ами;
- новые возможности explain в последних версиях.
Практические примеры (исходный запрос, план, оптимизация, итоговый план) для разных случаев оптимизации:
1. добавление индексов;
2. эквивалентное изменение запроса: or --> union, подзапрос --> join;
3. разбиение запроса на несколько с сохранением промежуточных данных во временной таблице;
4. изменение структуры данных;
5. использование пользовательских переменных.
Все самые важные команды SQL за 60 минутSkillFactoryВалерий Ковальчук – опытный DBA и сертифицированный инструктор по технологиям Oracle – о том, как научиться создавать основные запросы на языке SQL.
SPA инструментыRoman DvornovВидео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
2014.12.23 Александр Андреев, ParallelsNikolay SamokhvalovДоклад от Parallels:
Методики тестировния производительности database-centric приложений
Описание: При работе над сложными продуктами в database-centric приложениях изменения в коде и тем более в SQL запросах к базе данных могут приводить к неожиданным падениям производительности или же деградации производительности приложения с ростом размера базы данных. Поэтому важно уметь как можно быстрее отлавливать и исправлять причины таких деградаций.
Доклад о том, как устроен процесс мониторинга производительности продукта автоматизации хостинга и облачных сервисов Parallels Automation, для которого определяющим фактором является производительность базы данных.
Компания покажет, как анализирует планы исполнения SQL запросов внутри PostgreSQL, как проверяет насколько быстро и эффективно в целом работают SQL запросы, как определяет стратегию дальнейшей оптимизации.
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №7 "Оптимизация запросов и индексирование". Лектор - Павел Щербинин.
Вначале рассказывается об оптимизации доступа к данным, о декомпозиции соединения и состоянии запроса. Далее идёт большой блок, посвящённый оптимизатору запросов (изменение порядка соединения, применение алгебраических правил эквивалентности, оптимизации COUNT(), MIN(), MAX(), вычисление и свертка константных выражений, покрывающие индексы, оптимизация подзапросов, раннее завершение, сравнение по списку IN() и распространение равенства). Затем последовательно рассматриваются такие вещи, как соединение (JOIN) в MySQL, оптимизатор сортировки, коррелированные подзапросы, слияние и непоследовательный просмотр индексов, функции SELECT & UPDATE, COUNT(). После этого рассказывается об оптимизации запросов с помощью JOIN, GROUP BY, DISTINCT и LIMIT со смещением. В конце лекции даётся информация о кэшировании запросов, объединённых таблицах и секционировании.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №5 "Определение узких мест"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №5 "Определение узких мест". Лектор - Павел Щербинин.
Вначале рассказывается о подсистемах хранения: MyISAM, InnoDB, Memory, о критериях выбора подсистем хранения, приводятся практические примеры. Затем обсуждается тема индексирования (B-tree, хеш-индексы) и EXPLAIN (столбцы id, table, possible_keys, key, key_len).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Sql server 2019 New Features by Yevhen NedaskivskyiAlex TumanoffSQL Server 2019 introduces several new high availability and disaster recovery features such as support for up to 5 synchronous replicas in an Always On availability group and improved connection redirection capabilities. It also enhances PolyBase integration and provides new options for certificate management across instances. Additional new features include support for persistent memory, columnstore index improvements, and resumable online index operations.
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis ReznikAlex TumanoffThis document discusses hidden gems in SQL Server 2019, including lightweight query profiling, DBCC PAGE, dm_os_host_info, dm_os_schedulers, and QUERY OPTIMIZER COMPATIBILITY LEVEL. It provides demos of these lesser known features and notes that the string truncation error message is one of the most well-known hidden features. The author concludes that more hidden features will continue to be added to SQL Server.
Ad
More Related Content
Similar to "AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон (20)
Доклад Сергея Аверина на 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-разработчиков, работающих с реляционными БД.
Основные команды языка SQLAimurat AdilbekovТемы:
1.Возможности команды SELECT языка SQL
2.Выполнение основной команды SELECT
3.Различия между командами SQL и iSQL*Plus
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьTanya DenisyukПосле этого доклада вы будете знать, что такое Handlersocket, нужен ли он вам и «как его готовить».
Все как обычно — грабли, шишки, слезы из реальной жизни, направления «куда копать», примеры из практики. Вместе с докладом Сергей выложит код самописного php-клиента для HS, который мы используем в Badoo.
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...pgdayrussiaДоклад был представлен на официальной российской конференции PG Day'14 Russia, посвященной вопросам разработки и эксплуатации PostgreSQL.
Уникальный семинар от опытного "базиста" Ивана Фролкова призван наглядно пояснить слушателям адекватность применения реляционных СУБД на задачах веба. В рамках доклада Иван рассмотрит типичные "грабли", на которые натыкаются разработчики, и субоптимальные решения, изобретаемые с целью побороть возникшие проблемы. В качестве альтернативы, коллега Фролков наглядно пояснит, как эти же задачи решаются штатными средствами PostgreSQL.
В качестве бонуса Иван — "ветеран" промышленной разработки ПО для реляционных СУБД — проведет краткий ликбез по рекомендуемым практикам построения SQL-запросов и программирования на языке PL/PGSQL.
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...OnticoИндексы
- типы индексов;
- типы доступа к таблице;
- составные индексы (когда они работают);
- получение информации об индексе (show index; - описание формата);
- примеры с поиском по нескольким полям и сортировкой: какие индексы будут использоваться, а какие нет;
- что делать в случае нескольких условий по диапазону;
- как сервер выбирает индекс, который будет использован;
- директивы use/force/ignore index.
EXPLAIN
- как работает оптимизатор запросов;
- недостатки explain;
- explain extended;
- получение sql запроса, восстановленного из плана;
- формат выводимой explain информации:
-- что означает каждый столбец;
-- какие значения принимает (для extra только самые часто встречающиеся);
-- на что обратить внимание с точки зрения производительности;
-- как правильно читать план-разбор сложного примера с join-ами, подзапросами (обычными и from) и union-ами;
- новые возможности explain в последних версиях.
Практические примеры (исходный запрос, план, оптимизация, итоговый план) для разных случаев оптимизации:
1. добавление индексов;
2. эквивалентное изменение запроса: or --> union, подзапрос --> join;
3. разбиение запроса на несколько с сохранением промежуточных данных во временной таблице;
4. изменение структуры данных;
5. использование пользовательских переменных.
Все самые важные команды SQL за 60 минутSkillFactoryВалерий Ковальчук – опытный DBA и сертифицированный инструктор по технологиям Oracle – о том, как научиться создавать основные запросы на языке SQL.
SPA инструментыRoman DvornovВидео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
2014.12.23 Александр Андреев, ParallelsNikolay SamokhvalovДоклад от Parallels:
Методики тестировния производительности database-centric приложений
Описание: При работе над сложными продуктами в database-centric приложениях изменения в коде и тем более в SQL запросах к базе данных могут приводить к неожиданным падениям производительности или же деградации производительности приложения с ростом размера базы данных. Поэтому важно уметь как можно быстрее отлавливать и исправлять причины таких деградаций.
Доклад о том, как устроен процесс мониторинга производительности продукта автоматизации хостинга и облачных сервисов Parallels Automation, для которого определяющим фактором является производительность базы данных.
Компания покажет, как анализирует планы исполнения SQL запросов внутри PostgreSQL, как проверяет насколько быстро и эффективно в целом работают SQL запросы, как определяет стратегию дальнейшей оптимизации.
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №7 "Оптимизация запросов и индексирование". Лектор - Павел Щербинин.
Вначале рассказывается об оптимизации доступа к данным, о декомпозиции соединения и состоянии запроса. Далее идёт большой блок, посвящённый оптимизатору запросов (изменение порядка соединения, применение алгебраических правил эквивалентности, оптимизации COUNT(), MIN(), MAX(), вычисление и свертка константных выражений, покрывающие индексы, оптимизация подзапросов, раннее завершение, сравнение по списку IN() и распространение равенства). Затем последовательно рассматриваются такие вещи, как соединение (JOIN) в MySQL, оптимизатор сортировки, коррелированные подзапросы, слияние и непоследовательный просмотр индексов, функции SELECT & UPDATE, COUNT(). После этого рассказывается об оптимизации запросов с помощью JOIN, GROUP BY, DISTINCT и LIMIT со смещением. В конце лекции даётся информация о кэшировании запросов, объединённых таблицах и секционировании.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №5 "Определение узких мест"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №5 "Определение узких мест". Лектор - Павел Щербинин.
Вначале рассказывается о подсистемах хранения: MyISAM, InnoDB, Memory, о критериях выбора подсистем хранения, приводятся практические примеры. Затем обсуждается тема индексирования (B-tree, хеш-индексы) и EXPLAIN (столбцы id, table, possible_keys, key, key_len).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Sql server 2019 New Features by Yevhen NedaskivskyiAlex TumanoffSQL Server 2019 introduces several new high availability and disaster recovery features such as support for up to 5 synchronous replicas in an Always On availability group and improved connection redirection capabilities. It also enhances PolyBase integration and provides new options for certificate management across instances. Additional new features include support for persistent memory, columnstore index improvements, and resumable online index operations.
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis ReznikAlex TumanoffThis document discusses hidden gems in SQL Server 2019, including lightweight query profiling, DBCC PAGE, dm_os_host_info, dm_os_schedulers, and QUERY OPTIMIZER COMPATIBILITY LEVEL. It provides demos of these lesser known features and notes that the string truncation error message is one of the most well-known hidden features. The author concludes that more hidden features will continue to be added to SQL Server.
Azure data bricks by Eugene PolonichkoAlex TumanoffThis document provides an overview of Azure Databricks, including:
- Azure Databricks is an Apache Spark-based analytics platform optimized for Microsoft Azure cloud services. It includes Spark SQL, streaming, machine learning libraries, and integrates fully with Azure services.
- Clusters in Azure Databricks provide a unified platform for various analytics use cases. The workspace stores notebooks, libraries, dashboards, and folders. Notebooks provide a code environment with visualizations. Jobs and alerts can run and notify on notebooks.
- The Databricks File System (DBFS) stores files in Azure Blob storage in a distributed file system accessible from notebooks. Business intelligence tools can connect to Databricks clusters via JDBC
Java 8 in action.jinq.v.1.3Alex TumanoffThis document provides an overview and agenda for a presentation on Java 8 features and the Jinq library. It discusses Java 8 language features like lambda expressions and default methods. It then describes Jinq, an open-source library that allows functional-style database queries in Java by translating Java code into SQL. The document outlines how Jinq works, its configuration, supported query operations like filtering, sorting and joins, and limitations. It also briefly mentions alternative libraries like JOOQ.
"Drools: декларативная бизнес-логика в Java-приложениях" by Дмитрий Контрерас...Alex Tumanoff"Drools: декларативная бизнес-логика в Java-приложениях" by
Дмитрий Контрерас, Senior Java Developer, Luxoft
Spring.new hope.1.3Alex TumanoffThis document discusses Spring Boot, a framework for creating stand-alone, production-grade Spring based applications that can be "just run". Spring Boot focuses on using sensible default configurations and automatic configuration so that developers can focus on the business problem rather than infrastructure. It provides features like embedded Tomcat/Jetty servers, auto configuration of Spring and third party libraries, actuator endpoints for monitoring apps, and works with properties files, environment variables and JNDI. The document also covers Spring configuration, annotations, issues, Groovy, environment configuration, initialization, auto-configuration classes, properties, and the health and metrics endpoints of Spring Boot Actuator.
Sql saturday azure storage by Anton VidishchevAlex TumanoffThis document provides an overview of Windows Azure Storage, including its internals and best practices. It describes the key abstractions in Azure Storage like blobs, disks, tables, and queues. It then discusses the internal architecture and design goals around high availability, durability, and scalability. Specific topics covered include storage stamps, the partition layer, dynamic load balancing, and availability with consistency for writing and reading. The document concludes with best practices for .NET, blobs, tables, queues, and general usage of Azure Storage.
Serialization and performance by Sergey MorenetsAlex TumanoffThe document discusses serialization frameworks in Java and compares their performance. It provides an overview of popular serialization frameworks like Java serialization, Kryo, Protocol Buffers, Jackson, Google GSON, and others. Benchmark tests were conducted to compare the frameworks' speed of serialization and deserialization, as well as the size of serialized objects. Kryo with optimizations was generally the fastest, while Protocol Buffers was very fast for simple objects. The document concludes with recommendations on when to use different frameworks.
Игры для мобильных платформ by Алексей РыбаковAlex TumanoffUnity is a game engine that was first released in 2005 and now has over 2 million registered developers. It supports development for platforms like Windows, Mac, Linux, iOS, Android, PlayStation, and Xbox. The free version of Unity has limitations like revenue caps, while the Pro version costs $1,500 per year. Installation involves downloading a 1-3GB package that expands to 3-4GB on disk. Unity uses C# and JavaScript for scripting and supports 3D formats from applications like 3DS Max and Photoshop. The engine includes tools for building applications targeting different platforms like iOS. Popular games built with Unity include Angry Bots and Epic Citadel.
Android sync adapterAlex TumanoffThis document provides an overview of developing Android client apps using SyncAdapter. It discusses the key components involved - Account, ContentProvider, and SyncAdapter. It outlines the basic workflow and issues to consider with sync caching. Puzzles involved with implementing each component are described, along with code samples and documentation resources. Pros and cons of the SyncAdapter framework are presented.
Patterns of parallel programmingAlex TumanoffThis document discusses patterns of parallel programming. It begins by explaining why parallel programming is necessary due to limitations of Moore's Law like power consumption and wire delays. It then covers key terms and measures for parallel programming like work, span, speedup and parallelism. Common patterns are overviewed like pipeline, producer-consumer, and Map-Reduce. It warns of dangers like race conditions, deadlocks and starvation. Finally, it provides references for further reading on parallel programming patterns and approaches.
Lambda выражения и Java 8Alex TumanoffThe document discusses Java 8 lambda expressions and functional interfaces. Key points include:
- Lambda expressions allow for anonymous methods that can access local variables and don't require a class file.
- Functional interfaces define a single abstract method, representing a function contract.
- Default methods allow interfaces to provide default implementations of methods.
- Method references provide a way to refer to a method without invoking it.
3. Принцип описания схемы
• Таблица – интерфейс
• Содержит
– имя таблицы
– имена колонок
– path для провайдера
• Схема –
класс/интерфейс со
всеми таблицами
4. Что хочется
• Описываем схему один раз
• Описываем схему в одном месте
• Мало кода
• Легкость
• Читаемость
5. Создание схемы БД
• Написание скриптов руками
• Срипты/база в ресурсах
• Runtime framework для создания схемы
• Annotation processor
6. Inline SQL External SQL RF Annotations
Один раз + - + +
В одном месте +/- - - +
Мало кода - - - +
Легкость - +/- + +
Читаемость - + + +
7. Annotation SQL
• Это не ORM
• Никакой магии
• Это утилита/плагин для сокращения
количества кода
• Все можно посмотреть и потрогать
• Работает с ant
14. @SimpleView
Создаем view для выборки данных из нескольких
таблиц/view
Столбцы создаются с именем <alias>_<column>
Атрибуты
• value – имя view
15. Дефайним вьюшку
• @From
• @ Join
– joinTable – таблица которую присоединяем
– joinColumn
– onTableAlias – алиас таблицы к которой присоединяем
– onColumn
– type [INNER, LEFT, RIGHT, CROSS]
• @RawJoin
– joinTable – таблица переменной
– onCondition – raw sql вашего условия
– type [INNER, LEFT, RIGHT, CROSS]
• @Columns - что выбираем
• @IgnoreColumns – ничего не выбираем
18. @RawQuery
Создаем sql запрос который будет выполняться в
content provider.
Как и view только с параметрами
Атрибуты
• value – имя запроса
Плюшки
• @SqlQuery
19. Валидация схемы
• Таблица без столбцов
• Более одного PrimaryKey для таблицы
• Индекс не содержит полей
• Дублирующиеся названия таблиц/вьюшек
• Существование @From во вьюшке
• Существование колонок в таблицах/view
@From/@Join
• Дублирующиеся alias во view
20. • Пустое название
таблицы/столбца/индекса/вьюшки
• Индекс можно определить только для
таблицы
21. #2 Content Provider
Создаем полноценный провайдер с помощью
нескольких строк при этом сохраняем human style
Поддерживает:
• no-notify
• limit
• alternative notify uri
• bulkInsert
• triggers