SlideShare a Scribd company logo
Georgi Kodinov
Team Lead, MySQL server general team
How to Instrument Your Code in
MySQL Performance Schema
© 2019 Oracle1
Safe harbor statement
The following is intended to outline our general product direction. It is intended for information purposes
only, and may not be incorporated into any contract. It is not a commitment to deliver any material,
code, or functionality, and should not be relied upon in making purchasing decisions.
The development, release, timing, and pricing of any features or functionality described for Oracle’s
products may change and remains at the sole discretion of Oracle Corporation.
2 © 2019 Oracle
Topics Covered
Why should I instrument my code ?
How do I go about instrumenting it ?
Mechanics of instrumentation
PERFORMANCE_SCHEMA: not just about performance
© 2019 Oracle3
Why should I instrument my code ?
• Understand what resources it uses:
• memory, locks, time, files, etc.
• More debuggable
• Provides extra insight into code operation and issues
• Expose extra volatile information to users and administrators
• Make your code more portable
© 2019 Oracle4
How do I instrument my code ?
Contribute data to the instruments provided
Future: add your own instruments
© 2019 Oracle5
Most of the times it’sTHAT easy !
#include <pthread.h>
pthread_mutex_t foo;
void do_something()
{
pthread_mutex_lock(&foo);
...
pthread_mutex_unlock(&foo);
}
#include "mysql/psi/mysql_mutex.h“
mysql_mutex_t foo;
void do_something()
{
mysql_mutex_lock(&foo);
...
mysql_mutex_unlock(&foo);
}
© 2019 Oracle6
Extra step: register your objects
#ifdef HAVE_PSI_MUTEX_INTERFACE
PSI_mutex_key mutex_key_foo = PSI_NOT_INSTRUMENTED;
static PSI_mutex_info all_mutexes[]=
{
{ &mutex_key_foo, "LOCK_foo", PSI_FLAG_SINGLETON, 0, "example doc"},
..
}
..
count = static_cast<int>(array_elements(all_mutexes));
mysql_mutex_register(“category_foo”, all_mutexes, count);
..
mysql_mutex_init(mutex_key_foo, &foo, MY_MUTEX_INIT_FAST);
#endif /* HAVE_PSI_MUTEX_INTERFACE */
© 2019 Oracle7
Instrumentation inventory: inline functions
• POSIX threads
• POSIX conditions
• POSIX mutexes
• POSIX read/write locks
• POSIX sockets
• Buffered and unbuffered file I/O
• MySQL stages
• MySQL metadata locks
mysql_thread.h
mysql_cond.h
mysql_mutex.h
mysql_rwlock.h
mysql_socket.h
mysql_file.h
mysql_stage.h
mysql_mdl.h
© 2019 Oracle8
How do I instrument my memory use ?
#include <stdlib.h>
void *foo;
void do_something()
{
foo = malloc(12);
...
free(foo);
}
#include "mysys.h“
void *foo;
void do_something()
{
foo = my_malloc(mem_key_foo, 12, MYF(0));
...
my_free(foo);
}
© 2019 Oracle9
Extra step: register your objects
#ifdef HAVE_PSI_MEMORY_INTERFACE
PSI_memory_key mem_key_foo = PSI_NOT_INSTRUMENTED;
static PSI_memory_info all_memory[] = {
{&mem_key_foo, “FOO", PSI_FLAG_ONLY_GLOBAL_STAT, 0, "example doc"}};
…
count = static_cast<int>(array_elements(all_memory));
mysql_memory_register(category, all_memory, count);
#endif /* HAVE_PSI_MEMORY_INTERFACE */
© 2019 Oracle10
Instrumentation inventory: memory
• Plugin service implemented in mysys:
my_malloc(), my_free(), my_memdup()
etc.
• Static mysys inspired library to link with
components: just my_malloc() and my_free()
include/mysql/service_mysql_alloc.h
components/library_mysys/my_memory.h
© 2019 Oracle11
Instrumenting other stuff: utility macros
#include <mysql/psi/mysql_idle.h>
…
PSI_idle_locker *m_idle_psi = NULL;
PSI_idle_locker_state m_idle_state;
…
MYSQL_START_IDLE_WAIT(m_idle_psi, &m_idle_state);
…
MYSQL_END_IDLE_WAIT(m_idle_psi);
…
© 2019 Oracle12
Instrumentation inventory: utility macros
• Transactions
• Table locks
• “System” (currently shared objects)
• Statements
• Stored programs
• Prepared statements
• MySQL stages
• Errors
• Data locks
 Idle
mysql_transaction.h
mysql_table.h
mysql_system.h
mysql_statement.h
mysql_sp.h
mysql_ps.h
mysql_stage.h
mysql_error.h
mysql_data_lock.h
mysql_idle.h
© 2019 Oracle13
Mechanics of code instrumentation
Under the hood
© 2019 Oracle14
Calling instrumentation: PSI_*_CALL macros
• Server code: direct call
• #define PSI_FILE_CALL(M) pfs_##M##_v1
• Plugins: function pointer
• #define PSI_FILE_CALL(M) psi_file_service->M
• Components: component service handle
• #define PSI_FILE_CALL(M) mysql_service_psi_file_v1->M
© 2019 Oracle15
Random thoughts on good code instrumentation
• Always release the artifacts that instruments returned via the
intended methods !
• Instrumentation can be costly !
• Consider using component infrastructure
© 2019 Oracle16
Performance Schema
Not just about performance !
© 2019 Oracle17
PERFORMANCE_SCHEMA: Not just performance !
• Started as performance instrumentation. Still does it !
• Grown into general storage for fast-changing volatile data
• System variables
• Connection attributes
• Replication, innodb state
• Now supports adding new tables from components
© 2019 Oracle18
Add a PERFORMANCE_SCHEMA table
From a component
© 2019 Oracle19
Step 1:The data
© 2019 Oracle20
Step 2: Basic table APIs
© 2019 Oracle21
Step 3: Data retrieval
© 2019 Oracle22
Step 4: Component code
© 2019 Oracle23
How it drives
© 2019 Oracle24
Let’s look at the table
© 2019 Oracle25
Where to go from here ?
• MySQL Internals Doxygen:
https://dev.mysql.com/doc/dev/mysql-
server/latest/PAGE_PFS.html
• Reference Manual:
https://dev.mysql.com/doc/refman/8.0/en/performance-
schema.html
© 2019 Oracle26
Questions And Answers
© 2019 Oracle27
Copyright © 2019 Oracle and/or its affiliates.28
Meet the MySQL Team at the Conference
Sunny Bains
Luis Soares
Kenny Gryp
Frédéric Descamps
Dimitri Kravtchuk
Ståle Deraas
Pedro Gomes
Geir HøydalsvikNorvald Ryeng
Georgi Kodinov
Join us on MySQL Community Slack
Copyright © 2019 Oracle and/or its affiliates.29
https://lefred.be/mysql-community-on-slack/
Follow us on Social Media
Copyright © 2019 Oracle and/or its affiliates.30
https://www.facebook.com/mysql
https://twitter.com/mysql
https://www.linkedin.com/company/mysql
Thank you !
Georgi “Joro” Kodinov
Team Lead,
MySQL Server GeneralTeam
Georgi.Kodinov@oracle.com
31 © 2019 Oracle

More Related Content

PDF
Codeigniter Training Part2
Weerayut Hongsa
 
PPTX
OpenSuse 2015: Secure Deployment Changes Coming in MySQL 5.7
Georgi Kodinov
 
PDF
MySQL Security
Mario Beck
 
PDF
How to create a User Defined Policy with IBM APIc (v10)
Shiu-Fun Poon
 
PDF
MySQL in OPC(Oracle Public Cloud)
Ramana Yeruva
 
PDF
01 demystifying mysq-lfororacledbaanddeveloperv1
Ivan Ma
 
PDF
Mysql security 5.7
Mark Swarbrick
 
PDF
Codeigniter Training Part3
Weerayut Hongsa
 
Codeigniter Training Part2
Weerayut Hongsa
 
OpenSuse 2015: Secure Deployment Changes Coming in MySQL 5.7
Georgi Kodinov
 
MySQL Security
Mario Beck
 
How to create a User Defined Policy with IBM APIc (v10)
Shiu-Fun Poon
 
MySQL in OPC(Oracle Public Cloud)
Ramana Yeruva
 
01 demystifying mysq-lfororacledbaanddeveloperv1
Ivan Ma
 
Mysql security 5.7
Mark Swarbrick
 
Codeigniter Training Part3
Weerayut Hongsa
 

Similar to PLe19 How To Instrument Your Code in performance_schema (20)

PDF
Instrumenting plugins for Performance Schema
Mark Leith
 
PPTX
Mysql Performance Schema - fossasia 2016
Mayank Prasad
 
PPTX
MySQL Performance Schema : fossasia
Mayank Prasad
 
PPTX
MySQL Performance Schema in MySQL 8.0
Mayank Prasad
 
PDF
MySQL-Performance Schema- What's new in MySQL-5.7 DMRs
Mayank Prasad
 
PPT
MySQL 5.7: Performance Schema Improvements
Mark Leith
 
PPTX
OUGLS 2016: How profiling works in MySQL
Georgi Kodinov
 
PDF
New features in Performance Schema 5.7 in action
Sveta Smirnova
 
PPTX
MySQL Performance Schema, Open Source India, 2015
Mayank Prasad
 
PDF
MySQL Performance schema missing_manual_flossuk
Valeriy Kravchuk
 
PPT
Empower my sql server administration with 5.7 instruments
Marco Tusa
 
PDF
MySQL sys schema deep dive
Mark Leith
 
PDF
Mysql tech day_paris_ps_and_sys
Mark Leith
 
PDF
New features in Performance Schema 5.7 in action
Sveta Smirnova
 
PPT
OSI_MySQL_Performance Schema
Mayank Prasad
 
ODP
MySQL Monitoring Mechanisms
Mark Leith
 
ODP
MySQL Monitoring Mechanisms
Mark Leith
 
PDF
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
Tommy Lee
 
PDF
MySQL Enterprise Monitor
Mark Swarbrick
 
PDF
sveta smirnova - my sql performance schema in action
Dariia Seimova
 
Instrumenting plugins for Performance Schema
Mark Leith
 
Mysql Performance Schema - fossasia 2016
Mayank Prasad
 
MySQL Performance Schema : fossasia
Mayank Prasad
 
MySQL Performance Schema in MySQL 8.0
Mayank Prasad
 
MySQL-Performance Schema- What's new in MySQL-5.7 DMRs
Mayank Prasad
 
MySQL 5.7: Performance Schema Improvements
Mark Leith
 
OUGLS 2016: How profiling works in MySQL
Georgi Kodinov
 
New features in Performance Schema 5.7 in action
Sveta Smirnova
 
MySQL Performance Schema, Open Source India, 2015
Mayank Prasad
 
MySQL Performance schema missing_manual_flossuk
Valeriy Kravchuk
 
Empower my sql server administration with 5.7 instruments
Marco Tusa
 
MySQL sys schema deep dive
Mark Leith
 
Mysql tech day_paris_ps_and_sys
Mark Leith
 
New features in Performance Schema 5.7 in action
Sveta Smirnova
 
OSI_MySQL_Performance Schema
Mayank Prasad
 
MySQL Monitoring Mechanisms
Mark Leith
 
MySQL Monitoring Mechanisms
Mark Leith
 
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
Tommy Lee
 
MySQL Enterprise Monitor
Mark Swarbrick
 
sveta smirnova - my sql performance schema in action
Dariia Seimova
 
Ad

More from Georgi Kodinov (20)

PPTX
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
PPTX
2023 TurnovoConf MySQL Authentication.pptx
Georgi Kodinov
 
PPTX
2022 TurnovoConf MySQL за начинаещи.pptx
Georgi Kodinov
 
PPTX
OpenSUSE Conf 2020 MySQL Clone
Georgi Kodinov
 
PPTX
2020 pre fosdem mysql clone
Georgi Kodinov
 
PPTX
2019 BGOUG Autumn MySQL Clone
Georgi Kodinov
 
PPTX
2019 indit blackhat_honeypot your database server
Georgi Kodinov
 
PPTX
DevTalks.ro 2019 What's New in MySQL 8.0 Security
Georgi Kodinov
 
PPTX
DevTalks.ro 2019 MySQL Data Masking Talk
Georgi Kodinov
 
PPTX
FOSDEM19 MySQL Component Infrastructure
Georgi Kodinov
 
PPTX
MySQL Enterprise Data Masking
Georgi Kodinov
 
PPTX
Percona Live Europe 2018: What's New in MySQL 8.0 Security
Georgi Kodinov
 
PPTX
How to add stuff to MySQL
Georgi Kodinov
 
PPTX
Pl18 saving bandwidth
Georgi Kodinov
 
PPTX
BGOUG17: Cloudy with a chance of MySQL
Georgi Kodinov
 
PPTX
Pl17: MySQL 8.0: security
Georgi Kodinov
 
PPTX
Fosdem17 honeypot your database server
Georgi Kodinov
 
PPTX
2016 oSC MySQL Firewall
Georgi Kodinov
 
PPTX
OUGLS 2016: Guided Tour On The MySQL Source Code
Georgi Kodinov
 
PPTX
Openfest15 MySQL Plugin Development
Georgi Kodinov
 
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
2023 TurnovoConf MySQL Authentication.pptx
Georgi Kodinov
 
2022 TurnovoConf MySQL за начинаещи.pptx
Georgi Kodinov
 
OpenSUSE Conf 2020 MySQL Clone
Georgi Kodinov
 
2020 pre fosdem mysql clone
Georgi Kodinov
 
2019 BGOUG Autumn MySQL Clone
Georgi Kodinov
 
2019 indit blackhat_honeypot your database server
Georgi Kodinov
 
DevTalks.ro 2019 What's New in MySQL 8.0 Security
Georgi Kodinov
 
DevTalks.ro 2019 MySQL Data Masking Talk
Georgi Kodinov
 
FOSDEM19 MySQL Component Infrastructure
Georgi Kodinov
 
MySQL Enterprise Data Masking
Georgi Kodinov
 
Percona Live Europe 2018: What's New in MySQL 8.0 Security
Georgi Kodinov
 
How to add stuff to MySQL
Georgi Kodinov
 
Pl18 saving bandwidth
Georgi Kodinov
 
BGOUG17: Cloudy with a chance of MySQL
Georgi Kodinov
 
Pl17: MySQL 8.0: security
Georgi Kodinov
 
Fosdem17 honeypot your database server
Georgi Kodinov
 
2016 oSC MySQL Firewall
Georgi Kodinov
 
OUGLS 2016: Guided Tour On The MySQL Source Code
Georgi Kodinov
 
Openfest15 MySQL Plugin Development
Georgi Kodinov
 
Ad

Recently uploaded (20)

PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PDF
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
PPTX
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PPTX
Presentation about Database and Database Administrator
abhishekchauhan86963
 
PDF
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
PPTX
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
Presentation about Database and Database Administrator
abhishekchauhan86963
 
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 

PLe19 How To Instrument Your Code in performance_schema

  • 1. Georgi Kodinov Team Lead, MySQL server general team How to Instrument Your Code in MySQL Performance Schema © 2019 Oracle1
  • 2. Safe harbor statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. 2 © 2019 Oracle
  • 3. Topics Covered Why should I instrument my code ? How do I go about instrumenting it ? Mechanics of instrumentation PERFORMANCE_SCHEMA: not just about performance © 2019 Oracle3
  • 4. Why should I instrument my code ? • Understand what resources it uses: • memory, locks, time, files, etc. • More debuggable • Provides extra insight into code operation and issues • Expose extra volatile information to users and administrators • Make your code more portable © 2019 Oracle4
  • 5. How do I instrument my code ? Contribute data to the instruments provided Future: add your own instruments © 2019 Oracle5
  • 6. Most of the times it’sTHAT easy ! #include <pthread.h> pthread_mutex_t foo; void do_something() { pthread_mutex_lock(&foo); ... pthread_mutex_unlock(&foo); } #include "mysql/psi/mysql_mutex.h“ mysql_mutex_t foo; void do_something() { mysql_mutex_lock(&foo); ... mysql_mutex_unlock(&foo); } © 2019 Oracle6
  • 7. Extra step: register your objects #ifdef HAVE_PSI_MUTEX_INTERFACE PSI_mutex_key mutex_key_foo = PSI_NOT_INSTRUMENTED; static PSI_mutex_info all_mutexes[]= { { &mutex_key_foo, "LOCK_foo", PSI_FLAG_SINGLETON, 0, "example doc"}, .. } .. count = static_cast<int>(array_elements(all_mutexes)); mysql_mutex_register(“category_foo”, all_mutexes, count); .. mysql_mutex_init(mutex_key_foo, &foo, MY_MUTEX_INIT_FAST); #endif /* HAVE_PSI_MUTEX_INTERFACE */ © 2019 Oracle7
  • 8. Instrumentation inventory: inline functions • POSIX threads • POSIX conditions • POSIX mutexes • POSIX read/write locks • POSIX sockets • Buffered and unbuffered file I/O • MySQL stages • MySQL metadata locks mysql_thread.h mysql_cond.h mysql_mutex.h mysql_rwlock.h mysql_socket.h mysql_file.h mysql_stage.h mysql_mdl.h © 2019 Oracle8
  • 9. How do I instrument my memory use ? #include <stdlib.h> void *foo; void do_something() { foo = malloc(12); ... free(foo); } #include "mysys.h“ void *foo; void do_something() { foo = my_malloc(mem_key_foo, 12, MYF(0)); ... my_free(foo); } © 2019 Oracle9
  • 10. Extra step: register your objects #ifdef HAVE_PSI_MEMORY_INTERFACE PSI_memory_key mem_key_foo = PSI_NOT_INSTRUMENTED; static PSI_memory_info all_memory[] = { {&mem_key_foo, “FOO", PSI_FLAG_ONLY_GLOBAL_STAT, 0, "example doc"}}; … count = static_cast<int>(array_elements(all_memory)); mysql_memory_register(category, all_memory, count); #endif /* HAVE_PSI_MEMORY_INTERFACE */ © 2019 Oracle10
  • 11. Instrumentation inventory: memory • Plugin service implemented in mysys: my_malloc(), my_free(), my_memdup() etc. • Static mysys inspired library to link with components: just my_malloc() and my_free() include/mysql/service_mysql_alloc.h components/library_mysys/my_memory.h © 2019 Oracle11
  • 12. Instrumenting other stuff: utility macros #include <mysql/psi/mysql_idle.h> … PSI_idle_locker *m_idle_psi = NULL; PSI_idle_locker_state m_idle_state; … MYSQL_START_IDLE_WAIT(m_idle_psi, &m_idle_state); … MYSQL_END_IDLE_WAIT(m_idle_psi); … © 2019 Oracle12
  • 13. Instrumentation inventory: utility macros • Transactions • Table locks • “System” (currently shared objects) • Statements • Stored programs • Prepared statements • MySQL stages • Errors • Data locks  Idle mysql_transaction.h mysql_table.h mysql_system.h mysql_statement.h mysql_sp.h mysql_ps.h mysql_stage.h mysql_error.h mysql_data_lock.h mysql_idle.h © 2019 Oracle13
  • 14. Mechanics of code instrumentation Under the hood © 2019 Oracle14
  • 15. Calling instrumentation: PSI_*_CALL macros • Server code: direct call • #define PSI_FILE_CALL(M) pfs_##M##_v1 • Plugins: function pointer • #define PSI_FILE_CALL(M) psi_file_service->M • Components: component service handle • #define PSI_FILE_CALL(M) mysql_service_psi_file_v1->M © 2019 Oracle15
  • 16. Random thoughts on good code instrumentation • Always release the artifacts that instruments returned via the intended methods ! • Instrumentation can be costly ! • Consider using component infrastructure © 2019 Oracle16
  • 17. Performance Schema Not just about performance ! © 2019 Oracle17
  • 18. PERFORMANCE_SCHEMA: Not just performance ! • Started as performance instrumentation. Still does it ! • Grown into general storage for fast-changing volatile data • System variables • Connection attributes • Replication, innodb state • Now supports adding new tables from components © 2019 Oracle18
  • 19. Add a PERFORMANCE_SCHEMA table From a component © 2019 Oracle19
  • 20. Step 1:The data © 2019 Oracle20
  • 21. Step 2: Basic table APIs © 2019 Oracle21
  • 22. Step 3: Data retrieval © 2019 Oracle22
  • 23. Step 4: Component code © 2019 Oracle23
  • 24. How it drives © 2019 Oracle24
  • 25. Let’s look at the table © 2019 Oracle25
  • 26. Where to go from here ? • MySQL Internals Doxygen: https://dev.mysql.com/doc/dev/mysql- server/latest/PAGE_PFS.html • Reference Manual: https://dev.mysql.com/doc/refman/8.0/en/performance- schema.html © 2019 Oracle26
  • 27. Questions And Answers © 2019 Oracle27
  • 28. Copyright © 2019 Oracle and/or its affiliates.28 Meet the MySQL Team at the Conference Sunny Bains Luis Soares Kenny Gryp Frédéric Descamps Dimitri Kravtchuk Ståle Deraas Pedro Gomes Geir HøydalsvikNorvald Ryeng Georgi Kodinov
  • 29. Join us on MySQL Community Slack Copyright © 2019 Oracle and/or its affiliates.29 https://lefred.be/mysql-community-on-slack/
  • 30. Follow us on Social Media Copyright © 2019 Oracle and/or its affiliates.30 https://www.facebook.com/mysql https://twitter.com/mysql https://www.linkedin.com/company/mysql
  • 31. Thank you ! Georgi “Joro” Kodinov Team Lead, MySQL Server GeneralTeam [email protected] 31 © 2019 Oracle