SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
MySQL Server 8.0 Defaults
Morgan Tocker
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
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,
and timing of any features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
3
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 4
Agenda
• Our Philosophy on Defaults
• 8.0 Server areas of focus
• 8.0 Replication areas of focus
• How you can help
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 5
Defaults are Important
• We want the best out of box experience
• Ease of use
• Performance
• Safe & Secure
• Don’t lose data
• Don’t expose data
• Must also preserve upgrade story…
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 6
The Pursuit of the unattainable
• Never have to change any setting
• Everything works perfectly!
https://xkcd.com/1172/
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 7
Our Criteria
Must work on virtual
machines and cloud
instances out of the box.
Follow the principle of
least surprise.
No change for the
sake of change.
The test-suite
should pass.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 8
What does that mean?
• Some good ideas do not meet threshold for no change for the sake
of change:
• e.g. isolation level.
• We also evaluate performance impact on the test suite must pass.
• Some changes have significant impact to edge cases:
• e.g. character set.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 9
Partially Related Goal: Fewer Settings!
• Primary target is good defaults.
• We will remove variables where changing is illogical.
• This helps manual readability, and improves user experience.
• Not easy: often edge cases and usability in regression testing.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 10
Server 8.0
• Started asking for feedback

12 months ago
• Seeded discussion with some of

the areas we are most interested in.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 11
Character Set and Collation
• UTF8MB4 as the default character set
– Project started in MySQL 5.7
– Many improvements to reduce performance
impact
• New! Support for the latest Unicode 9.0
• We are working on per-country collation
rules
– Accent Sensitive
– Case Sensitive
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 12
Event Scheduler
• Proposal is to turn on by default.
• See opportunities for SYS and third
party applications.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 13
Misc Session Buffers
• group_concat_max_len (currently 1K)
• join_buffer_size (currently 256K)
• read_buffer_size (currently 128K)
• read_rnd_buffer_size (currently 256K)
• sort_buffer_size (currently 256K)
• max_allowed_packet (currently 4M)
• See opportunity to increase default
max_allowed_packet
• Increasing Group Concat has sparked
further discussion on improving
behaviour.
• Respect strict mode
• Other settings very workload
dependent.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 14
Security
• Goal starting from 5.7 is secure by
default.
• Need to harden behaviour around
symbolic links.
• symbolic_links (currently de facto
disabled)
• local_infile (currently on)
• default_authentication_plugin (currently
mysql_native_password)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 15
Slow query log
• Proposal imported from 5.7-plan
• We know that “2 seconds” is more
ideal range
• Would like to offer more
comprehensive filtering options
• Not 8.0 timeframe at this point
• long_query_time (currently 10)
• log_slow_admin_statements /
log_slow_slave_statements (currently
off)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 16
InnoDB
• Changing Sample Pages to 100 has very
low overhead.
• Log file resize is not dynamic, but
buffer pool is
• Would be great to over provision
slightly.
• innodb_autoinc_lock_mode (currently 1)
• innodb_log_file_size (currently 48M)
• innodb_print_all_deadlocks (currently
OFF)
• innodb_sort_buffer_size (currently 1M)
• innodb_stats_persistent_sample_pages
(currently 20)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 17
InnoDB (IO Configuration)
• Would like to switch the default

to be “SSDs first”.
• Users with hard drives are the

minority.
• innodb_flush_method (currently uses
buffered IO)
• innodb_flush_neighbors (currently ON)
• innodb_page_cleaners (currently 1)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 18
Timeouts
• Do not yet have a clear proposal
• Would like to shorten timeouts,

but can not “change for the sake 

of change”
• Need clear use case showing

improvement
• innodb_lock_wait_timeout (currently 50
seconds)
• interactive_timeout (currently 8 hours)
• lock_wait_timeout (currently 1 year)
• wait_timeout (currently 8 hours)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 19
Misc
• SQL Standard has different behaviour
w.r.t. lctn. Need to consider
alternative implementation.
• No clear proposal on digest length
• Long term may need to investigate
alternatives (smart truncate,
dynamic)
• lower_case_table_names (currently 0)
• max_connect_errors (currently 100)
• max_digest_length (currently 1024)
• thread_cache_size (autosized)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 20
Replication 8.0
• Similar blog post to the server

12 months ago now
• Curated by my colleague

Matt Lord
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 21
Binary Log
• Turn on binary log by default
• Limit retention to 30 days
• GTIDs enabled by default, with 

consistency enforced
• log-bin (currently OFF)
• expire-log-days (currently unlimited)
• gtid-mode (currently OFF)
• enforce-gtid-consistency (currently OFF)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 22
Transactional Replication
• Change repositories to TABLE
• Allows for transactional
replication, and an easy switch to
multi-source.
• master-info-repository and relay-log-
info-repository (currently FILE)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 23
Slave Options
• Proposal is to enable intra-schema 

parallel replication by 

default (4 threads)
• Commit order preserved
• Add HASH_SCAN to the list of 

search algorithms
• log-slave-updates (currently OFF)
• slave-parallel-type (currently DATABASE)
• slave-parallel-workers (currently 0)
• slave-preserve-commit-order (currently
OFF)
• slave-rows-search-algorithms (currently
TABLE_SCAN,INDEX_SCAN)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 24
Group Replication
• Enable the group replication plugin

by default with XXHASH64

write set extraction
• Simplifies configuration steps
• transaction-write-set-extraction
(currently OFF)
• plugin-load (currently GR not loaded)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Many of our best changes come
from the Community
• Please send feedback via email,
comment on blog posts, etc.
• We value your operational
expertise
25
How can you help?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 26
MySQL Server Defaults

Más contenido relacionado

La actualidad más candente

MySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics Improvements
Morgan Tocker
 
Barcelona mysqlnd qc
Barcelona mysqlnd qcBarcelona mysqlnd qc
Barcelona mysqlnd qc
Anis Berejeb
 
Using MySQL in Automated Testing
Using MySQL in Automated TestingUsing MySQL in Automated Testing
Using MySQL in Automated Testing
Morgan Tocker
 
MySQL 5.7: Core Server Changes
MySQL 5.7: Core Server ChangesMySQL 5.7: Core Server Changes
MySQL 5.7: Core Server Changes
Morgan Tocker
 

La actualidad más candente (20)

MySQL For Linux Sysadmins
MySQL For Linux SysadminsMySQL For Linux Sysadmins
MySQL For Linux Sysadmins
 
MySQL 5.7 + JSON
MySQL 5.7 + JSONMySQL 5.7 + JSON
MySQL 5.7 + JSON
 
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
 
MySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics Improvements
 
Barcelona mysqlnd qc
Barcelona mysqlnd qcBarcelona mysqlnd qc
Barcelona mysqlnd qc
 
MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query Optimization
 
MySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMySQL Performance Metrics that Matter
MySQL Performance Metrics that Matter
 
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricksQuery Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
 
MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgrade
 
Ohio Linux Fest -- MySQL's NoSQL
Ohio Linux Fest -- MySQL's NoSQLOhio Linux Fest -- MySQL's NoSQL
Ohio Linux Fest -- MySQL's NoSQL
 
My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3
 
Using MySQL in Automated Testing
Using MySQL in Automated TestingUsing MySQL in Automated Testing
Using MySQL in Automated Testing
 
Parallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBParallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDB
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014
 
MySQL 5.7: Core Server Changes
MySQL 5.7: Core Server ChangesMySQL 5.7: Core Server Changes
MySQL 5.7: Core Server Changes
 
MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015
 
Optimizing MySQL
Optimizing MySQLOptimizing MySQL
Optimizing MySQL
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDB
 
MySQL 5.7 in a Nutshell
MySQL 5.7 in a NutshellMySQL 5.7 in a Nutshell
MySQL 5.7 in a Nutshell
 
New awesome features in MySQL 5.7
New awesome features in MySQL 5.7New awesome features in MySQL 5.7
New awesome features in MySQL 5.7
 

Destacado

Reducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLReducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQL
Kenny Gryp
 
MySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourMySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD Tour
Ronald Bradford
 
MySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architecturesMySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architectures
FromDual GmbH
 

Destacado (20)

2010丹臣的思考
2010丹臣的思考2010丹臣的思考
2010丹臣的思考
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...
 
Mysql For Developers
Mysql For DevelopersMysql For Developers
Mysql For Developers
 
MySQL High Availability and Disaster Recovery with Continuent, a VMware company
MySQL High Availability and Disaster Recovery with Continuent, a VMware companyMySQL High Availability and Disaster Recovery with Continuent, a VMware company
MySQL High Availability and Disaster Recovery with Continuent, a VMware company
 
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
 
Advanced Percona XtraDB Cluster in a nutshell... la suite
Advanced Percona XtraDB Cluster in a nutshell... la suiteAdvanced Percona XtraDB Cluster in a nutshell... la suite
Advanced Percona XtraDB Cluster in a nutshell... la suite
 
Reducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLReducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQL
 
MySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourMySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD Tour
 
Successful Scalability Principles - Part 1
Successful Scalability Principles - Part 1Successful Scalability Principles - Part 1
Successful Scalability Principles - Part 1
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
 
MySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architecturesMySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architectures
 
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
 
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
 
Online MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupOnline MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackup
 
Everything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group ReplicationEverything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group Replication
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ Verisure
 
SQL Outer Joins for Fun and Profit
SQL Outer Joins for Fun and ProfitSQL Outer Joins for Fun and Profit
SQL Outer Joins for Fun and Profit
 
Mysql high availability and scalability
Mysql high availability and scalabilityMysql high availability and scalability
Mysql high availability and scalability
 

Similar a MySQL Server Defaults

MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014
Dave Stokes
 

Similar a MySQL Server Defaults (20)

MySQL in OPC(Oracle Public Cloud)
MySQL in OPC(Oracle Public Cloud)MySQL in OPC(Oracle Public Cloud)
MySQL in OPC(Oracle Public Cloud)
 
Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl
 
MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014
 
MySQL :What's New #GIDS16
MySQL :What's New #GIDS16MySQL :What's New #GIDS16
MySQL :What's New #GIDS16
 
MySQL Cloud Service Deep Dive
MySQL Cloud Service Deep DiveMySQL Cloud Service Deep Dive
MySQL Cloud Service Deep Dive
 
Oracle Storage a ochrana dat
Oracle Storage a ochrana datOracle Storage a ochrana dat
Oracle Storage a ochrana dat
 
MySql's NoSQL -- best of both worlds on the same disks
MySql's NoSQL -- best of both worlds on the same disksMySql's NoSQL -- best of both worlds on the same disks
MySql's NoSQL -- best of both worlds on the same disks
 
Streamline it management
Streamline it managementStreamline it management
Streamline it management
 
Apouc 2014-enterprise-manager-12c
Apouc 2014-enterprise-manager-12cApouc 2014-enterprise-manager-12c
Apouc 2014-enterprise-manager-12c
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015
 
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014
 
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementUsing MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance Improvement
 
MySQL Tech Tour 2015 - Manage & Tune
MySQL Tech Tour 2015 - Manage & TuneMySQL Tech Tour 2015 - Manage & Tune
MySQL Tech Tour 2015 - Manage & Tune
 
My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015
 
MySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The Dolphin
 
What's New in MySQL 5.7
What's New in MySQL 5.7What's New in MySQL 5.7
What's New in MySQL 5.7
 
Oracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RACOracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RAC
 
20150110 my sql-performanceschema
20150110 my sql-performanceschema20150110 my sql-performanceschema
20150110 my sql-performanceschema
 
OUGLS 2016: Guided Tour On The MySQL Source Code
OUGLS 2016: Guided Tour On The MySQL Source CodeOUGLS 2016: Guided Tour On The MySQL Source Code
OUGLS 2016: Guided Tour On The MySQL Source Code
 
Oracle Database Appliance (ODA) X6-2 Portfolio Overview
Oracle Database Appliance (ODA) X6-2 Portfolio OverviewOracle Database Appliance (ODA) X6-2 Portfolio Overview
Oracle Database Appliance (ODA) X6-2 Portfolio Overview
 

Más de Morgan Tocker (11)

Introducing Spirit - Online Schema Change
Introducing Spirit - Online Schema ChangeIntroducing Spirit - Online Schema Change
Introducing Spirit - Online Schema Change
 
MySQL Usability Guidelines
MySQL Usability GuidelinesMySQL Usability Guidelines
MySQL Usability Guidelines
 
My First 90 days with Vitess
My First 90 days with VitessMy First 90 days with Vitess
My First 90 days with Vitess
 
FOSDEM MySQL and Friends Devroom
FOSDEM MySQL and Friends DevroomFOSDEM MySQL and Friends Devroom
FOSDEM MySQL and Friends Devroom
 
Introducing TiDB - Percona Live Frankfurt
Introducing TiDB - Percona Live FrankfurtIntroducing TiDB - Percona Live Frankfurt
Introducing TiDB - Percona Live Frankfurt
 
TiDB Introduction - Boston MySQL Meetup Group
TiDB Introduction - Boston MySQL Meetup GroupTiDB Introduction - Boston MySQL Meetup Group
TiDB Introduction - Boston MySQL Meetup Group
 
TiDB Introduction - San Francisco MySQL Meetup
TiDB Introduction - San Francisco MySQL MeetupTiDB Introduction - San Francisco MySQL Meetup
TiDB Introduction - San Francisco MySQL Meetup
 
TiDB Introduction
TiDB IntroductionTiDB Introduction
TiDB Introduction
 
MySQL 8.0 Optimizer Guide
MySQL 8.0 Optimizer GuideMySQL 8.0 Optimizer Guide
MySQL 8.0 Optimizer Guide
 
Locking and Concurrency Control
Locking and Concurrency ControlLocking and Concurrency Control
Locking and Concurrency Control
 
The InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLThe InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQL
 

Último

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Último (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

MySQL Server Defaults

  • 1. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | MySQL Server 8.0 Defaults Morgan Tocker Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
  • 2.
  • 3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 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, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 3
  • 4. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 4 Agenda • Our Philosophy on Defaults • 8.0 Server areas of focus • 8.0 Replication areas of focus • How you can help
  • 5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 5 Defaults are Important • We want the best out of box experience • Ease of use • Performance • Safe & Secure • Don’t lose data • Don’t expose data • Must also preserve upgrade story…
  • 6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 6 The Pursuit of the unattainable • Never have to change any setting • Everything works perfectly! https://xkcd.com/1172/
  • 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 7 Our Criteria Must work on virtual machines and cloud instances out of the box. Follow the principle of least surprise. No change for the sake of change. The test-suite should pass.
  • 8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 8 What does that mean? • Some good ideas do not meet threshold for no change for the sake of change: • e.g. isolation level. • We also evaluate performance impact on the test suite must pass. • Some changes have significant impact to edge cases: • e.g. character set.
  • 9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 9 Partially Related Goal: Fewer Settings! • Primary target is good defaults. • We will remove variables where changing is illogical. • This helps manual readability, and improves user experience. • Not easy: often edge cases and usability in regression testing.
  • 10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 10 Server 8.0 • Started asking for feedback
 12 months ago • Seeded discussion with some of
 the areas we are most interested in.
  • 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 11 Character Set and Collation • UTF8MB4 as the default character set – Project started in MySQL 5.7 – Many improvements to reduce performance impact • New! Support for the latest Unicode 9.0 • We are working on per-country collation rules – Accent Sensitive – Case Sensitive
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 12 Event Scheduler • Proposal is to turn on by default. • See opportunities for SYS and third party applications.
  • 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 13 Misc Session Buffers • group_concat_max_len (currently 1K) • join_buffer_size (currently 256K) • read_buffer_size (currently 128K) • read_rnd_buffer_size (currently 256K) • sort_buffer_size (currently 256K) • max_allowed_packet (currently 4M) • See opportunity to increase default max_allowed_packet • Increasing Group Concat has sparked further discussion on improving behaviour. • Respect strict mode • Other settings very workload dependent.
  • 14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 14 Security • Goal starting from 5.7 is secure by default. • Need to harden behaviour around symbolic links. • symbolic_links (currently de facto disabled) • local_infile (currently on) • default_authentication_plugin (currently mysql_native_password)
  • 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 15 Slow query log • Proposal imported from 5.7-plan • We know that “2 seconds” is more ideal range • Would like to offer more comprehensive filtering options • Not 8.0 timeframe at this point • long_query_time (currently 10) • log_slow_admin_statements / log_slow_slave_statements (currently off)
  • 16. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 16 InnoDB • Changing Sample Pages to 100 has very low overhead. • Log file resize is not dynamic, but buffer pool is • Would be great to over provision slightly. • innodb_autoinc_lock_mode (currently 1) • innodb_log_file_size (currently 48M) • innodb_print_all_deadlocks (currently OFF) • innodb_sort_buffer_size (currently 1M) • innodb_stats_persistent_sample_pages (currently 20)
  • 17. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 17 InnoDB (IO Configuration) • Would like to switch the default
 to be “SSDs first”. • Users with hard drives are the
 minority. • innodb_flush_method (currently uses buffered IO) • innodb_flush_neighbors (currently ON) • innodb_page_cleaners (currently 1)
  • 18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 18 Timeouts • Do not yet have a clear proposal • Would like to shorten timeouts,
 but can not “change for the sake 
 of change” • Need clear use case showing
 improvement • innodb_lock_wait_timeout (currently 50 seconds) • interactive_timeout (currently 8 hours) • lock_wait_timeout (currently 1 year) • wait_timeout (currently 8 hours)
  • 19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 19 Misc • SQL Standard has different behaviour w.r.t. lctn. Need to consider alternative implementation. • No clear proposal on digest length • Long term may need to investigate alternatives (smart truncate, dynamic) • lower_case_table_names (currently 0) • max_connect_errors (currently 100) • max_digest_length (currently 1024) • thread_cache_size (autosized)
  • 20. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 20 Replication 8.0 • Similar blog post to the server
 12 months ago now • Curated by my colleague
 Matt Lord
  • 21. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 21 Binary Log • Turn on binary log by default • Limit retention to 30 days • GTIDs enabled by default, with 
 consistency enforced • log-bin (currently OFF) • expire-log-days (currently unlimited) • gtid-mode (currently OFF) • enforce-gtid-consistency (currently OFF)
  • 22. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 22 Transactional Replication • Change repositories to TABLE • Allows for transactional replication, and an easy switch to multi-source. • master-info-repository and relay-log- info-repository (currently FILE)
  • 23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 23 Slave Options • Proposal is to enable intra-schema 
 parallel replication by 
 default (4 threads) • Commit order preserved • Add HASH_SCAN to the list of 
 search algorithms • log-slave-updates (currently OFF) • slave-parallel-type (currently DATABASE) • slave-parallel-workers (currently 0) • slave-preserve-commit-order (currently OFF) • slave-rows-search-algorithms (currently TABLE_SCAN,INDEX_SCAN)
  • 24. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 24 Group Replication • Enable the group replication plugin
 by default with XXHASH64
 write set extraction • Simplifies configuration steps • transaction-write-set-extraction (currently OFF) • plugin-load (currently GR not loaded)
  • 25. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Many of our best changes come from the Community • Please send feedback via email, comment on blog posts, etc. • We value your operational expertise 25 How can you help?
  • 26. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 26