SlideShare a Scribd company logo
1 of 53
Download to read offline
InnoDB–MySQL Storage Engine
Mayank Prasad
InnoDB Developer

November 12, 2019
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Copyright © 2019, 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.
2
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
About Me
Mayank Prasad
• M.tech Computer Science.
• Consulting Member Technical Staff at Oracle-MySQL.
• Part of MySQL Server Development team since 2011.
• Worked in MySQL-Performance Schema Development for 6 years.
• Joined InnoDB development team in 2017.
• Reach me :
• @manku (Twitter)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
A brief intro
Latest Features
Performance & Scalability
Q&A
4
Agenda
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
A brief intro
Latest Features
Performance & Scalability
Q&A
5
Agenda
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
 
[JDBC, ODBC, .NET, PHP, Python, C API, Perl]
 
 Logs (bootstrap/error/slow query/binary/redo/undo), files (.ibd
files etc.)
[Java, .NET, PHP, Python, C, Perl]
Pluggable Storage Engine APIs Interface
Achieve Memory PFSMyISAM
Connection Pool Authentication/Authorization
SQL Interface
(DDL, DML, SP, Triggers,
views etc.)
Tools/Utilities
(Backup/restore,
Upgrade, Import,
workbench, replication
etc.)
Parser
(Lexical analysis, Syntactic/
Semantic analysis, parse tree
generation etc.)
Optimizer
(Rewriting queries, order of scan,
plan generation etc.)
Others
MySQL Server
MySQL Connectors
Applications
Plugin Interface
(Daemon, I_S Table, Audit
Log, Query rewrite,
Password validation etc.)
Query Execution
(Sending/retrieving data to/from
SE)
Cache/Buffers
(Query cache, table
cache, etc.)
Disk
Custom
Plugins
MySQL Client
InnoDB
Storage Engines:
CREATE

FETCH
DELETE
UPDATE
MySQL
Server
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
MySQL Storage Engines
• Pluggable infrastructure. Write a new SE and plug it in.
• InnoDB : Default SE since MySQL 5.5
• Transactional SE. ACID compliant.
• Row-level-locking, Crash recovery, MVCC.
• Foreign-key referential integrity constraint.
• Different SEs are for different purpose.
7
Introduction
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Why InnoDB ?
• ACID compliant.
• High performance/reliability
• Row-level-locking. High concurrency.
• Foreign-key referential integrity
• Flexible with configuration variables to suite individual need.
• Customer/community feedback driven development
• …
8
Benefits
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
A brief intro
Latest Features
Performance & Scalability
Q&A
9
Agenda
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Data Dictionary
• Metadata of tables.
• Earlier :
• InnoDB maintains its own data dictionary for tables in it.
• Meta data information was kept on disk as well in different files (.frm etc).
• Mismatch possible. (b/w InnoDB Dictionary and .frm files on disk)
• Not crash proof.
10
Introduction
SQLs
I_S Tables
InnoDB
Dictionary
Disc
.frm files
.frm files
.frm files
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Single New Data Dictionary
• Now :
• One source of truth – System Tables
• Persistent metadata stored in System Tables which are stored in InnoDB.
• Atomic DDL
• No more .frm and InnoDB data dictionary mismatch issues
• Control meta-data access using a single locking mechanism (MDL)
• Server supports the concept of Table-spaces
• .frm files were per table, made tablespace support messy
• All DD tables are in DD table space now.
11
Benefits
SQLs
I_S
Data
Dictionary
DD Tables
System Tables
Views
InnoDB
DD
Tablespace
DD Tables
System Tables
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
● Upgrade from 5.7 only
● Make sure no crash and previous innodb_fast_shutdown is not set to 2
● Upgrade automatically
● Create new DD tables in DD tablespace
● Update all tables to new DD tables
● Upgrade to the new Undo tablespaces seamlessly
● Create SDI in all the .ibd files.
● Finally, legacy InnoDB system tables are dropped
New Data Dictionary : Upgrade
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Serialized Dictionary Information (SDI)
● Purpose
● Redundancy. Metadata stored in the tablespace in addition to the DD
● To make the tablespace self descriptive
● Updated on DDL
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
SDI tools
• A tool for extracting Serialized Dictionary Information (SDI)
• ibd2sdi
• Works offline and online
• Extracts the SDI data in JSON format
14
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Serialized Dictionary Information (SDI)
["ibd2sdi"
,
{
"type": 1,
"id": 340,
"object":
{
…
"dd_object_type": "Table",
"dd_object": {
"name": "t1",
"mysql_version_id": 80019,
"created": 20191104101218,
"last_altered": 20191104101218,
…
"columns": [
{
"name": "id",
"type": 4,
"is_nullable": false,
"is_zerofill": false,
"is_unsigned": false,
"is_auto_increment": false,
…
"schema_ref": “test",
…
"indexes": [
{
"name": "PRIMARY",
"hidden": false,
…
"foreign_keys": [],
"check_constraints": [],
mysql> CREATE TABLE test.t1 (id INT KEY, name CHAR(100));
mayankprasad:~/mysql-bin$ ./bin/ibd2sdi data/test/t1.ibd

Offline
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
SDI tools (Example)
• Useful during disaster recovery
• DD info is lost. Only tablespace (ibd) files are available.
• Extract SDI from tablespace (.ibd) file.
• Use SDI to restore table metadata and .ibd to restored data (IMPORT).
• Shared tablespace. One table t1 got corrupted.
• Extract the meta-data from the .ibd file into a separate .SDI file
• Manually edit .SDI file to remove t1 meta-data.
• Use edited .SDI file to import the resining table in tablespace.
16
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
DDL_log table – For Atomic DDL
• Internal table. Resides in DD tablespace.
• No user DDL/DML allowed in this.
• To support atomic DDL – records physical file actions during DDL.
• A single DDL may generate several entries in this table.
• Changes are persisted immediately, exempted from
innodb_flush_log_at_trx_commit setting.
• Entries are deleted when DDL finishes.
17
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
DDL_log table – For Atomic DDL
• Records physical changes on disk. Eg : tablespace file creation/drop, index trees
creation/drop, file rename etc.
• These physical operations in a DDL cannot be rolled back by a transaction.
• DDL transaction and this table together, makes Atomic (Crash safe DDL) possible
18
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Example – CREATE TABLE with Atomic DDL
MySQL 5.7
• CREATE TABLE T1 …
• InnoDB creates the physical tablespaces/files(file-per-table), Cluster index tree
and other index trees
• InnoDB starts its own transactions to insert new table/indexes metadata to
InnoDB own System tables (note: separate dictionary in InnoDB)
• If server crashes after physical tablespace/files created, before metadata
updated, these files will be orphaned and left behind.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Example – CREATE TABLE with Atomic DDL
MySQL 8.0
• CREATE TABLE T1 …
• InnoDB creates the physical tablespaces/files(file-per-table), Cluster index tree
and other index trees
• InnoDB logs the operations in the DDL_LOG.
• SQL layer commits or rollbacks.
• Call to SE post_ddl(). If rollback, the post_ddl() physically deletes the tablespace/
ibd (file-per-table) and drops the index trees for the table.
• If server crashes, then during DDL recovery ddl_log is consulted to get rid of
orphaned and left behind files.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
ALTER TABLE – ADD COLUMN
● Biggest pain point for users
● New columns have to be added (to a big table) from time to time
● Table rebuild was needed. Because each record header keeps columns
specific info.
● Costly - time, disk, resource schedule
● Table lock
● Replication - Master does it. Then slave does the same. Lots of time.
● …
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
ALTER TABLE - INSTANT ADD COLUMN
● ALTER TABLE t1 ADD COLUMN … ALGORITHM = INSTANT;
● New (default) algorithm
● Internals
● This will result in a metadata change only
● Existing records not touched. No table rebuild required
● Keep new Column’s default in Metadata for existing records.
● No table lock required
● Saves time/space/resources
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Table
Old format rows
Old format rows Old format rows
DML
INSERT
DML
UPDATE
ALTER TABLE ..
ADD COLUMN c, [],
ALGORITHM=INSTANT
Data Dictionary
Core DD tables System tables
No update to table!
Number
of fields
Default
values
ALTER TABLE - INSTANT ADD COLUMN
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Instant Add Column - Limitations
● Only support adding columns as the last column in the row
● No support for COMPRESSED tables, which is seldom used
● No support for tables with a full-text index
● No support for table residing in DD tablespace
● No support for temporary tables (it goes with COPY)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
UNDO Log
● No longer stored in the system table space
● Manage undo logs using SQL
● File names must end in ‘.ibu’ suffix.
● CREATE UNDO TABLESPACE undo001 ADD DATAFILE ‘undo001.ibu’;
● ALTER UNDO TABLESPACE undo001 SET INACTIVE;
● ALTER UNDO TABLESPACE undo001 SET ACTIVE;
● DROP UNDO TABLESPACE undo001;
● Default is two UNDO table spaces
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Observability (Information Schema)
• New table, INNODB_CACHED_INDEXES
• Report pages cached in the InnoDB buffer pool for each index.
mysql> select * from INFORMATION_SCHEMA.INNODB_CACHED_INDEXES where INDEX_ID=144;
+----------+----------+----------------+
| SPACE_ID | INDEX_ID | N_CACHED_PAGES |
+----------+----------+----------------+
| 3 | 144 | 1 |
+----------+----------+----------------+
• Undo log status in INNODB_TABLESPACES
mysql> SELECT NAME, SPACE_TYPE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE="Undo" ORDER BY
NAME;

+-----------------+------------+--------+
| NAME | SPACE_TYPE | STATE |
+-----------------+------------+--------+
| innodb_undo_001 | Undo | active |
| innodb_undo_002 | Undo | active |
| undo003 | Undo | empty |
+-----------------+------------+--------+
26
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Dedicated Server
• To utilise server resources to max.
• --innodb-dedicated-server := boolean (default OFF)
• Sets values based on physical memory available
• —innodb-log-file-size based on physical memory size
• —innodb-buffer-pool-size based on physical memory size
• —innodb-flush-method = O_DIRECT_NO_FSYNC
• Explicitly set values get preference.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
If phy_mem_size < 1G
Use InnoDB default value
Else If phy_mem_size <= 4GB
Use 50% of phy_mem_size
Else
Use 75% of phy_mem_size
End
--innodb-buffer-pool-size
Dedicated Server (contd.) :
If phy_mem_size < 1G
Use InnoDB default value
Else If phy_mem_size <= 4GB
Set to 128 MB
Else if phy_mem_size <= 8 GB
Set to 512 MB
Else if phy_mem_size <= 16 GB
Set to 1GB
Else
Set to 2GB
End
--innodb-log-file-size
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Parallel Select Count(*) And Check Table
• Scans the sub-trees below the root node in parallel
• For very large tables it will dynamically break the scan to sub-ranges
• —innodb-parallel-thread-count= [1-256]
• Session variable. Default 4.
• Maximum threads 256.
• Scans partitions in parallel too
• Only works on the clustered index (yet)
• Foundation for future work for all non-locking range selects
• Stay tuned
29
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Lock Manager
• Contribution by University of Michigan DB researchers
• Key idea is :
• transaction weight : How it blocks other transactions.
• Allow transaction with more weight to proceed
• Cab driver vs. Bus driver
• No configuration required. Switches b/w FIFO and CATS automatically.
• Threshold is >= 32 waiting Transactions. To make lower contention
work as it is.
30
CATS (Contention Aware Transaction Scheduling)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Lock Manager
• Performance Improvements
• Working on improving CATS

further.
• 4K -> 15K TPS (512 clients)
• Blog link here
31
CATS (Contention Aware Transaction Scheduling)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Redesigned LOB infrastructure (for DocumentStore)
• For partial fetch and update
• BLOB pages are stored in singly list
• Finding a given offset is time

and I/O consuming
• Some byte in last page

of BLOB is to be read in

very large BLOB.
32
Uncompressed LOBs
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Redesigned LOB infrastructure (for DocumentStore)
• New format
• LOB index pages
• Calculate which page to read

based on LOB index entries
• Then read that page only.
33
Uncompressed LOBs (contd.)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Redesigned LOB infrastructure (for DocumentStore)
• Performance Improvement
• 500 Threads (10K->110K)
• Blog link here
34
Uncompressed LOBs (contd.)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Redesigned LOB infrastructure (for DocumentStore)
• Compressed pages

stored in singly linked

list.
• For small update, full

BLOB is to be 

uncompressed
35
Compressed LOBs
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Redesigned LOB infrastructure (for DocumentStore)
• BLOB divided into chunks
• Chunks are compressed 

separately with index on it.
• For small update, a chunk

can be found and updated.
36
Compressed LOBs (contd.)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Redesigned LOB infrastructure (for DocumentStore)
• Improved performance 

results
• Blog link here
37
Compressed LOBs (contd.)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Encryption : Redo/Undo, General Tablespace
• Encrypt redo and undo log
•--innodb-redo-log-encrypt := bool
•--innodb-undo-log-encrypt := bool
• Shared tablespaces
•Support Encryption
•CREATE/ALTER TABLESPACE … ENCRYPTION=‘Y’/’N’
•Support Import/Export using SDI (WIP)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Removed Major I/O bottleneck
• All I/O was covered by a single mutex (fil_sys_t::mutex)
• Sharded the fil_sys_t::mutex
• 64 shards
• Dedicated shard for redo log files and undo tablespaces
39
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Performance Results
40
For 512 connections, 600K ->1M TPS.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Lock Free Redo log

New design (lock free)Old design
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Performance Results

For 256 connections, 60K ->240K TPS.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone
• Simple and efficient way to create a MySQL replica
• Cloned replica is a physical snapshot with exact data.
• Can be a cloned locally or remotely
43
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone
44
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone
• Configuration parameters are not cloned
• Does not clone binary logs
• Only InnoDB support
• Tables in other storage engines will be cloned as empty tables
• Blocks all concurrent DDLs in Donor node
45
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone : Observability
• performance_schema.clone_status
• performance_schema.clone_progress
STAGE STATE START TIME DURATION Estimate Done(%)
DROP DATA Completed 17:23:26 790.86 ms 0 MB 100%
FILE COPY Completed 17:23:27 10.33 ms 94,729 MB 100%
PAGE COPY Completed 17:33:47 15.91 s 11,885 MB 100%
REDO COPY Completed 17:34:03 1.07 s 293 MB 100%
FILE SYNC In Progress 17:34:04 51.68 s 0 MB 0%
RESTART Not Started NULL NULL 0 MB 0%
RECOVERY Not Started NULL NULL 0 MB 0%
46
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone : Resource Control
• Limit network usage
• —clone-max-network-bandwidth (dynamic)
• Affects currently running Clone too
• —clone-enable-compression
• CPU consumption at Donor is going to increase
• Limit data usage
• —clone-max-data-bandwidth (dynamic)
• Set to reduce clone transfer rate to reduce impact
• To control Donor’s performance impact (less I/O).
•
47
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone : Security
• Secure connection
• CLONE … REQUIRE SSL; — to force secure connection
• For encrypted tablespaces SSL is always enforced
• —clone-ssl* configurations for using certificates
• Clone user at donor instance must have
• Privilege to connect from recipient host user@host
• BACKUP_ADMIN privilege for data copy
• Clone user at recipient must have
• CLONE_ADMIN privilege to replace instance data
• Donor host name and port must be in the recipient configured list
• —clone-valid-donor-list [SYSTEM_VARIABLES_ADMIN privilege is needed]
48
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone : Performance Control
• Clone plugin uses multiple connections from recipient to donor
server
• —clone-max-concurrency Limits maximum connections
• Helps in preventing CPU/IO/Network saturation

• Clone starts with 1 thread and threads are increased in steps
• —clone-autotune-concurrency [auto tune spawning threads]
49
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone : Handles Network Failure
50
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Clone : Data Directory
51
• Clone local instance data to a local data directory
mysql> CLONE LOCAL DATA DIRECTORY = “/absolute/path/data”;
• Clone remote instance data
• Instead of replacing current data directory
mysql> CLONE INSTANCE
FROM clone_user@donor.host.com:3306
IDENTIFIED BY “clone_password”
DATA DIRECTORY = “/absolute/path/data”;
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Stay tuned to MySQL Server Blogs
http://mysqlserverteam.com
Thank you for using MySQL!
MySQL-InnoDB

More Related Content

What's hot

What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19cMaria Colgan
 
Machine Learning and AI at Oracle
Machine Learning and AI at OracleMachine Learning and AI at Oracle
Machine Learning and AI at OracleSandesh Rao
 
Introduction to MySQL Cluster
Introduction to MySQL ClusterIntroduction to MySQL Cluster
Introduction to MySQL ClusterAbel Flórez
 
Oracle RAC 19c with Standard Edition (SE) 2 - Support Update
Oracle RAC 19c with Standard Edition (SE) 2 - Support UpdateOracle RAC 19c with Standard Edition (SE) 2 - Support Update
Oracle RAC 19c with Standard Edition (SE) 2 - Support UpdateMarkus Michalewicz
 
AUSOUG - NZOUG-GroundBreakers-Jun 2019 - 19c RAC
AUSOUG - NZOUG-GroundBreakers-Jun 2019 - 19c RACAUSOUG - NZOUG-GroundBreakers-Jun 2019 - 19c RAC
AUSOUG - NZOUG-GroundBreakers-Jun 2019 - 19c RACSandesh Rao
 
ORAchk EXAchk what's new in 12.1.0.2.7
ORAchk EXAchk what's new in 12.1.0.2.7ORAchk EXAchk what's new in 12.1.0.2.7
ORAchk EXAchk what's new in 12.1.0.2.7Sandesh Rao
 
Introduction to Machine Learning - From DBA's to Data Scientists - OGBEMEA
Introduction to Machine Learning - From DBA's to Data Scientists - OGBEMEAIntroduction to Machine Learning - From DBA's to Data Scientists - OGBEMEA
Introduction to Machine Learning - From DBA's to Data Scientists - OGBEMEASandesh Rao
 
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...Alex Zaballa
 
Oracle Database in-Memory Overivew
Oracle Database in-Memory OverivewOracle Database in-Memory Overivew
Oracle Database in-Memory OverivewMaria Colgan
 
Standard Edition High Availability (SEHA) - The Why, What & How
Standard Edition High Availability (SEHA) - The Why, What & HowStandard Edition High Availability (SEHA) - The Why, What & How
Standard Edition High Availability (SEHA) - The Why, What & HowMarkus Michalewicz
 
#dbhouseparty - Using Oracle’s Converged “AI” Database to Pick a Good but Ine...
#dbhouseparty - Using Oracle’s Converged “AI” Database to Pick a Good but Ine...#dbhouseparty - Using Oracle’s Converged “AI” Database to Pick a Good but Ine...
#dbhouseparty - Using Oracle’s Converged “AI” Database to Pick a Good but Ine...Tammy Bednar
 
What_to_expect_from_oracle_database_12c
What_to_expect_from_oracle_database_12cWhat_to_expect_from_oracle_database_12c
What_to_expect_from_oracle_database_12cMaria Colgan
 
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...Trivadis
 
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified [❤PDF❤] Oracle 19c Database Administration Oracle Simplified
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified ZanderHaney
 
Presentation upgrade, migrate &amp; consolidate to oracle database 12c &amp...
Presentation   upgrade, migrate &amp; consolidate to oracle database 12c &amp...Presentation   upgrade, migrate &amp; consolidate to oracle database 12c &amp...
Presentation upgrade, migrate &amp; consolidate to oracle database 12c &amp...solarisyougood
 
Top 20 FAQs on the Autonomous Database
Top 20 FAQs on the Autonomous DatabaseTop 20 FAQs on the Autonomous Database
Top 20 FAQs on the Autonomous DatabaseSandesh Rao
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise MonitorMario Beck
 
Performance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and UnderscoresPerformance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and UnderscoresJitendra Singh
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerJeff Smith
 

What's hot (20)

What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19c
 
Machine Learning and AI at Oracle
Machine Learning and AI at OracleMachine Learning and AI at Oracle
Machine Learning and AI at Oracle
 
Introduction to MySQL Cluster
Introduction to MySQL ClusterIntroduction to MySQL Cluster
Introduction to MySQL Cluster
 
Oracle RAC 19c with Standard Edition (SE) 2 - Support Update
Oracle RAC 19c with Standard Edition (SE) 2 - Support UpdateOracle RAC 19c with Standard Edition (SE) 2 - Support Update
Oracle RAC 19c with Standard Edition (SE) 2 - Support Update
 
AUSOUG - NZOUG-GroundBreakers-Jun 2019 - 19c RAC
AUSOUG - NZOUG-GroundBreakers-Jun 2019 - 19c RACAUSOUG - NZOUG-GroundBreakers-Jun 2019 - 19c RAC
AUSOUG - NZOUG-GroundBreakers-Jun 2019 - 19c RAC
 
ORAchk EXAchk what's new in 12.1.0.2.7
ORAchk EXAchk what's new in 12.1.0.2.7ORAchk EXAchk what's new in 12.1.0.2.7
ORAchk EXAchk what's new in 12.1.0.2.7
 
Introduction to Machine Learning - From DBA's to Data Scientists - OGBEMEA
Introduction to Machine Learning - From DBA's to Data Scientists - OGBEMEAIntroduction to Machine Learning - From DBA's to Data Scientists - OGBEMEA
Introduction to Machine Learning - From DBA's to Data Scientists - OGBEMEA
 
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
 
Oracle Database in-Memory Overivew
Oracle Database in-Memory OverivewOracle Database in-Memory Overivew
Oracle Database in-Memory Overivew
 
Standard Edition High Availability (SEHA) - The Why, What & How
Standard Edition High Availability (SEHA) - The Why, What & HowStandard Edition High Availability (SEHA) - The Why, What & How
Standard Edition High Availability (SEHA) - The Why, What & How
 
#dbhouseparty - Using Oracle’s Converged “AI” Database to Pick a Good but Ine...
#dbhouseparty - Using Oracle’s Converged “AI” Database to Pick a Good but Ine...#dbhouseparty - Using Oracle’s Converged “AI” Database to Pick a Good but Ine...
#dbhouseparty - Using Oracle’s Converged “AI” Database to Pick a Good but Ine...
 
What_to_expect_from_oracle_database_12c
What_to_expect_from_oracle_database_12cWhat_to_expect_from_oracle_database_12c
What_to_expect_from_oracle_database_12c
 
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
 
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified [❤PDF❤] Oracle 19c Database Administration Oracle Simplified
[❤PDF❤] Oracle 19c Database Administration Oracle Simplified
 
Presentation upgrade, migrate &amp; consolidate to oracle database 12c &amp...
Presentation   upgrade, migrate &amp; consolidate to oracle database 12c &amp...Presentation   upgrade, migrate &amp; consolidate to oracle database 12c &amp...
Presentation upgrade, migrate &amp; consolidate to oracle database 12c &amp...
 
Developer day v2
Developer day v2Developer day v2
Developer day v2
 
Top 20 FAQs on the Autonomous Database
Top 20 FAQs on the Autonomous DatabaseTop 20 FAQs on the Autonomous Database
Top 20 FAQs on the Autonomous Database
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise Monitor
 
Performance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and UnderscoresPerformance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and Underscores
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developer
 

Similar to MySQL-InnoDB

Dd and atomic ddl pl17 dublin
Dd and atomic ddl pl17 dublinDd and atomic ddl pl17 dublin
Dd and atomic ddl pl17 dublinStåle Deraas
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Geir Høydalsvik
 
MySQL Cluster Asynchronous replication (2014)
MySQL Cluster Asynchronous replication (2014) MySQL Cluster Asynchronous replication (2014)
MySQL Cluster Asynchronous replication (2014) Frazer Clement
 
MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)Mirko Ortensi
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMario Beck
 
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoOracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoMarketingArrowECS_CZ
 
Oracle GoldenGate Performance Tuning
Oracle GoldenGate Performance TuningOracle GoldenGate Performance Tuning
Oracle GoldenGate Performance TuningBobby Curtis
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document StoreTed Wennmark
 
New data dictionary an internal server api that matters
New data dictionary an internal server api that mattersNew data dictionary an internal server api that matters
New data dictionary an internal server api that mattersAlexander Nozdrin
 
Utilizing BI 11g Reporting To Get The Most Out of P6
Utilizing BI 11g Reporting To Get The Most Out of P6Utilizing BI 11g Reporting To Get The Most Out of P6
Utilizing BI 11g Reporting To Get The Most Out of P6p6academy
 
MySQL 5.6, news in 5.7 and our HA options
MySQL 5.6, news in 5.7 and our HA optionsMySQL 5.6, news in 5.7 and our HA options
MySQL 5.6, news in 5.7 and our HA optionsTed Wennmark
 
MySQL 5.7: Core Server Changes
MySQL 5.7: Core Server ChangesMySQL 5.7: Core Server Changes
MySQL 5.7: Core Server ChangesMorgan Tocker
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7MySQL Brasil
 
What is new in MariaDB 10.6?
What is new in MariaDB 10.6?What is new in MariaDB 10.6?
What is new in MariaDB 10.6?Mydbops
 
Oracle to MySQL 2012
Oracle to MySQL  2012 Oracle to MySQL  2012
Oracle to MySQL 2012 Marco Tusa
 
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle Ashnikbiz
 
#DNUG45 - IBM Notes and Domino Performance Boost - Reloaded
 #DNUG45 - IBM Notes and Domino Performance Boost - Reloaded #DNUG45 - IBM Notes and Domino Performance Boost - Reloaded
#DNUG45 - IBM Notes and Domino Performance Boost - ReloadedChristoph Adler
 
MySQL Document Store and Node.JS
MySQL Document Store and Node.JSMySQL Document Store and Node.JS
MySQL Document Store and Node.JSReggie Burnett
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document StoreRui Quelhas
 

Similar to MySQL-InnoDB (20)

Dd and atomic ddl pl17 dublin
Dd and atomic ddl pl17 dublinDd and atomic ddl pl17 dublin
Dd and atomic ddl pl17 dublin
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
 
MySQL Cluster Asynchronous replication (2014)
MySQL Cluster Asynchronous replication (2014) MySQL Cluster Asynchronous replication (2014)
MySQL Cluster Asynchronous replication (2014)
 
MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDB
 
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoOracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
 
Oracle GoldenGate Performance Tuning
Oracle GoldenGate Performance TuningOracle GoldenGate Performance Tuning
Oracle GoldenGate Performance Tuning
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document Store
 
New data dictionary an internal server api that matters
New data dictionary an internal server api that mattersNew data dictionary an internal server api that matters
New data dictionary an internal server api that matters
 
Utilizing BI 11g Reporting To Get The Most Out of P6
Utilizing BI 11g Reporting To Get The Most Out of P6Utilizing BI 11g Reporting To Get The Most Out of P6
Utilizing BI 11g Reporting To Get The Most Out of P6
 
MySQL 5.6, news in 5.7 and our HA options
MySQL 5.6, news in 5.7 and our HA optionsMySQL 5.6, news in 5.7 and our HA options
MySQL 5.6, news in 5.7 and our HA options
 
MySQL 5.7: Core Server Changes
MySQL 5.7: Core Server ChangesMySQL 5.7: Core Server Changes
MySQL 5.7: Core Server Changes
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7
 
What is new in MariaDB 10.6?
What is new in MariaDB 10.6?What is new in MariaDB 10.6?
What is new in MariaDB 10.6?
 
Oracle to MySQL 2012
Oracle to MySQL  2012 Oracle to MySQL  2012
Oracle to MySQL 2012
 
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
 
#DNUG45 - IBM Notes and Domino Performance Boost - Reloaded
 #DNUG45 - IBM Notes and Domino Performance Boost - Reloaded #DNUG45 - IBM Notes and Domino Performance Boost - Reloaded
#DNUG45 - IBM Notes and Domino Performance Boost - Reloaded
 
MySQL Document Store and Node.JS
MySQL Document Store and Node.JSMySQL Document Store and Node.JS
MySQL Document Store and Node.JS
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document Store
 

Recently uploaded

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 

Recently uploaded (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 

MySQL-InnoDB

  • 1. InnoDB–MySQL Storage Engine Mayank Prasad InnoDB Developer
 November 12, 2019 Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
  • 2. Copyright © 2019, 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. 2
  • 3. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | About Me Mayank Prasad • M.tech Computer Science. • Consulting Member Technical Staff at Oracle-MySQL. • Part of MySQL Server Development team since 2011. • Worked in MySQL-Performance Schema Development for 6 years. • Joined InnoDB development team in 2017. • Reach me : • @manku (Twitter)
  • 4. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | A brief intro Latest Features Performance & Scalability Q&A 4 Agenda
  • 5. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | A brief intro Latest Features Performance & Scalability Q&A 5 Agenda
  • 6. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |   [JDBC, ODBC, .NET, PHP, Python, C API, Perl]    Logs (bootstrap/error/slow query/binary/redo/undo), files (.ibd files etc.) [Java, .NET, PHP, Python, C, Perl] Pluggable Storage Engine APIs Interface Achieve Memory PFSMyISAM Connection Pool Authentication/Authorization SQL Interface (DDL, DML, SP, Triggers, views etc.) Tools/Utilities (Backup/restore, Upgrade, Import, workbench, replication etc.) Parser (Lexical analysis, Syntactic/ Semantic analysis, parse tree generation etc.) Optimizer (Rewriting queries, order of scan, plan generation etc.) Others MySQL Server MySQL Connectors Applications Plugin Interface (Daemon, I_S Table, Audit Log, Query rewrite, Password validation etc.) Query Execution (Sending/retrieving data to/from SE) Cache/Buffers (Query cache, table cache, etc.) Disk Custom Plugins MySQL Client InnoDB Storage Engines: CREATE
 FETCH DELETE UPDATE MySQL Server
  • 7. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | MySQL Storage Engines • Pluggable infrastructure. Write a new SE and plug it in. • InnoDB : Default SE since MySQL 5.5 • Transactional SE. ACID compliant. • Row-level-locking, Crash recovery, MVCC. • Foreign-key referential integrity constraint. • Different SEs are for different purpose. 7 Introduction
  • 8. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Why InnoDB ? • ACID compliant. • High performance/reliability • Row-level-locking. High concurrency. • Foreign-key referential integrity • Flexible with configuration variables to suite individual need. • Customer/community feedback driven development • … 8 Benefits
  • 9. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | A brief intro Latest Features Performance & Scalability Q&A 9 Agenda
  • 10. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Data Dictionary • Metadata of tables. • Earlier : • InnoDB maintains its own data dictionary for tables in it. • Meta data information was kept on disk as well in different files (.frm etc). • Mismatch possible. (b/w InnoDB Dictionary and .frm files on disk) • Not crash proof. 10 Introduction SQLs I_S Tables InnoDB Dictionary Disc .frm files .frm files .frm files
  • 11. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Single New Data Dictionary • Now : • One source of truth – System Tables • Persistent metadata stored in System Tables which are stored in InnoDB. • Atomic DDL • No more .frm and InnoDB data dictionary mismatch issues • Control meta-data access using a single locking mechanism (MDL) • Server supports the concept of Table-spaces • .frm files were per table, made tablespace support messy • All DD tables are in DD table space now. 11 Benefits SQLs I_S Data Dictionary DD Tables System Tables Views InnoDB DD Tablespace DD Tables System Tables
  • 12. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | ● Upgrade from 5.7 only ● Make sure no crash and previous innodb_fast_shutdown is not set to 2 ● Upgrade automatically ● Create new DD tables in DD tablespace ● Update all tables to new DD tables ● Upgrade to the new Undo tablespaces seamlessly ● Create SDI in all the .ibd files. ● Finally, legacy InnoDB system tables are dropped New Data Dictionary : Upgrade
  • 13. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Serialized Dictionary Information (SDI) ● Purpose ● Redundancy. Metadata stored in the tablespace in addition to the DD ● To make the tablespace self descriptive ● Updated on DDL
  • 14. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | SDI tools • A tool for extracting Serialized Dictionary Information (SDI) • ibd2sdi • Works offline and online • Extracts the SDI data in JSON format 14
  • 15. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Serialized Dictionary Information (SDI) ["ibd2sdi" , { "type": 1, "id": 340, "object": { … "dd_object_type": "Table", "dd_object": { "name": "t1", "mysql_version_id": 80019, "created": 20191104101218, "last_altered": 20191104101218, … "columns": [ { "name": "id", "type": 4, "is_nullable": false, "is_zerofill": false, "is_unsigned": false, "is_auto_increment": false, … "schema_ref": “test", … "indexes": [ { "name": "PRIMARY", "hidden": false, … "foreign_keys": [], "check_constraints": [], mysql> CREATE TABLE test.t1 (id INT KEY, name CHAR(100)); mayankprasad:~/mysql-bin$ ./bin/ibd2sdi data/test/t1.ibd
 Offline
  • 16. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | SDI tools (Example) • Useful during disaster recovery • DD info is lost. Only tablespace (ibd) files are available. • Extract SDI from tablespace (.ibd) file. • Use SDI to restore table metadata and .ibd to restored data (IMPORT). • Shared tablespace. One table t1 got corrupted. • Extract the meta-data from the .ibd file into a separate .SDI file • Manually edit .SDI file to remove t1 meta-data. • Use edited .SDI file to import the resining table in tablespace. 16
  • 17. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | DDL_log table – For Atomic DDL • Internal table. Resides in DD tablespace. • No user DDL/DML allowed in this. • To support atomic DDL – records physical file actions during DDL. • A single DDL may generate several entries in this table. • Changes are persisted immediately, exempted from innodb_flush_log_at_trx_commit setting. • Entries are deleted when DDL finishes. 17
  • 18. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | DDL_log table – For Atomic DDL • Records physical changes on disk. Eg : tablespace file creation/drop, index trees creation/drop, file rename etc. • These physical operations in a DDL cannot be rolled back by a transaction. • DDL transaction and this table together, makes Atomic (Crash safe DDL) possible 18
  • 19. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Example – CREATE TABLE with Atomic DDL MySQL 5.7 • CREATE TABLE T1 … • InnoDB creates the physical tablespaces/files(file-per-table), Cluster index tree and other index trees • InnoDB starts its own transactions to insert new table/indexes metadata to InnoDB own System tables (note: separate dictionary in InnoDB) • If server crashes after physical tablespace/files created, before metadata updated, these files will be orphaned and left behind.
  • 20. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Example – CREATE TABLE with Atomic DDL MySQL 8.0 • CREATE TABLE T1 … • InnoDB creates the physical tablespaces/files(file-per-table), Cluster index tree and other index trees • InnoDB logs the operations in the DDL_LOG. • SQL layer commits or rollbacks. • Call to SE post_ddl(). If rollback, the post_ddl() physically deletes the tablespace/ ibd (file-per-table) and drops the index trees for the table. • If server crashes, then during DDL recovery ddl_log is consulted to get rid of orphaned and left behind files.
  • 21. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | ALTER TABLE – ADD COLUMN ● Biggest pain point for users ● New columns have to be added (to a big table) from time to time ● Table rebuild was needed. Because each record header keeps columns specific info. ● Costly - time, disk, resource schedule ● Table lock ● Replication - Master does it. Then slave does the same. Lots of time. ● …
  • 22. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | ALTER TABLE - INSTANT ADD COLUMN ● ALTER TABLE t1 ADD COLUMN … ALGORITHM = INSTANT; ● New (default) algorithm ● Internals ● This will result in a metadata change only ● Existing records not touched. No table rebuild required ● Keep new Column’s default in Metadata for existing records. ● No table lock required ● Saves time/space/resources
  • 23. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Table Old format rows Old format rows Old format rows DML INSERT DML UPDATE ALTER TABLE .. ADD COLUMN c, [], ALGORITHM=INSTANT Data Dictionary Core DD tables System tables No update to table! Number of fields Default values ALTER TABLE - INSTANT ADD COLUMN
  • 24. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Instant Add Column - Limitations ● Only support adding columns as the last column in the row ● No support for COMPRESSED tables, which is seldom used ● No support for tables with a full-text index ● No support for table residing in DD tablespace ● No support for temporary tables (it goes with COPY)
  • 25. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | UNDO Log ● No longer stored in the system table space ● Manage undo logs using SQL ● File names must end in ‘.ibu’ suffix. ● CREATE UNDO TABLESPACE undo001 ADD DATAFILE ‘undo001.ibu’; ● ALTER UNDO TABLESPACE undo001 SET INACTIVE; ● ALTER UNDO TABLESPACE undo001 SET ACTIVE; ● DROP UNDO TABLESPACE undo001; ● Default is two UNDO table spaces
  • 26. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Observability (Information Schema) • New table, INNODB_CACHED_INDEXES • Report pages cached in the InnoDB buffer pool for each index. mysql> select * from INFORMATION_SCHEMA.INNODB_CACHED_INDEXES where INDEX_ID=144; +----------+----------+----------------+ | SPACE_ID | INDEX_ID | N_CACHED_PAGES | +----------+----------+----------------+ | 3 | 144 | 1 | +----------+----------+----------------+ • Undo log status in INNODB_TABLESPACES mysql> SELECT NAME, SPACE_TYPE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE="Undo" ORDER BY NAME;
 +-----------------+------------+--------+ | NAME | SPACE_TYPE | STATE | +-----------------+------------+--------+ | innodb_undo_001 | Undo | active | | innodb_undo_002 | Undo | active | | undo003 | Undo | empty | +-----------------+------------+--------+ 26
  • 27. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Dedicated Server • To utilise server resources to max. • --innodb-dedicated-server := boolean (default OFF) • Sets values based on physical memory available • —innodb-log-file-size based on physical memory size • —innodb-buffer-pool-size based on physical memory size • —innodb-flush-method = O_DIRECT_NO_FSYNC • Explicitly set values get preference.
  • 28. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | If phy_mem_size < 1G Use InnoDB default value Else If phy_mem_size <= 4GB Use 50% of phy_mem_size Else Use 75% of phy_mem_size End --innodb-buffer-pool-size Dedicated Server (contd.) : If phy_mem_size < 1G Use InnoDB default value Else If phy_mem_size <= 4GB Set to 128 MB Else if phy_mem_size <= 8 GB Set to 512 MB Else if phy_mem_size <= 16 GB Set to 1GB Else Set to 2GB End --innodb-log-file-size
  • 29. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Parallel Select Count(*) And Check Table • Scans the sub-trees below the root node in parallel • For very large tables it will dynamically break the scan to sub-ranges • —innodb-parallel-thread-count= [1-256] • Session variable. Default 4. • Maximum threads 256. • Scans partitions in parallel too • Only works on the clustered index (yet) • Foundation for future work for all non-locking range selects • Stay tuned 29
  • 30. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Lock Manager • Contribution by University of Michigan DB researchers • Key idea is : • transaction weight : How it blocks other transactions. • Allow transaction with more weight to proceed • Cab driver vs. Bus driver • No configuration required. Switches b/w FIFO and CATS automatically. • Threshold is >= 32 waiting Transactions. To make lower contention work as it is. 30 CATS (Contention Aware Transaction Scheduling)
  • 31. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Lock Manager • Performance Improvements • Working on improving CATS
 further. • 4K -> 15K TPS (512 clients) • Blog link here 31 CATS (Contention Aware Transaction Scheduling)
  • 32. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Redesigned LOB infrastructure (for DocumentStore) • For partial fetch and update • BLOB pages are stored in singly list • Finding a given offset is time
 and I/O consuming • Some byte in last page
 of BLOB is to be read in
 very large BLOB. 32 Uncompressed LOBs
  • 33. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Redesigned LOB infrastructure (for DocumentStore) • New format • LOB index pages • Calculate which page to read
 based on LOB index entries • Then read that page only. 33 Uncompressed LOBs (contd.)
  • 34. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Redesigned LOB infrastructure (for DocumentStore) • Performance Improvement • 500 Threads (10K->110K) • Blog link here 34 Uncompressed LOBs (contd.)
  • 35. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Redesigned LOB infrastructure (for DocumentStore) • Compressed pages
 stored in singly linked
 list. • For small update, full
 BLOB is to be 
 uncompressed 35 Compressed LOBs
  • 36. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Redesigned LOB infrastructure (for DocumentStore) • BLOB divided into chunks • Chunks are compressed 
 separately with index on it. • For small update, a chunk
 can be found and updated. 36 Compressed LOBs (contd.)
  • 37. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Redesigned LOB infrastructure (for DocumentStore) • Improved performance 
 results • Blog link here 37 Compressed LOBs (contd.)
  • 38. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Encryption : Redo/Undo, General Tablespace • Encrypt redo and undo log •--innodb-redo-log-encrypt := bool •--innodb-undo-log-encrypt := bool • Shared tablespaces •Support Encryption •CREATE/ALTER TABLESPACE … ENCRYPTION=‘Y’/’N’ •Support Import/Export using SDI (WIP)
  • 39. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Removed Major I/O bottleneck • All I/O was covered by a single mutex (fil_sys_t::mutex) • Sharded the fil_sys_t::mutex • 64 shards • Dedicated shard for redo log files and undo tablespaces 39
  • 40. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Performance Results 40 For 512 connections, 600K ->1M TPS.
  • 41. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Lock Free Redo log
 New design (lock free)Old design
  • 42. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Performance Results
 For 256 connections, 60K ->240K TPS.
  • 43. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone • Simple and efficient way to create a MySQL replica • Cloned replica is a physical snapshot with exact data. • Can be a cloned locally or remotely 43
  • 44. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone 44
  • 45. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone • Configuration parameters are not cloned • Does not clone binary logs • Only InnoDB support • Tables in other storage engines will be cloned as empty tables • Blocks all concurrent DDLs in Donor node 45
  • 46. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone : Observability • performance_schema.clone_status • performance_schema.clone_progress STAGE STATE START TIME DURATION Estimate Done(%) DROP DATA Completed 17:23:26 790.86 ms 0 MB 100% FILE COPY Completed 17:23:27 10.33 ms 94,729 MB 100% PAGE COPY Completed 17:33:47 15.91 s 11,885 MB 100% REDO COPY Completed 17:34:03 1.07 s 293 MB 100% FILE SYNC In Progress 17:34:04 51.68 s 0 MB 0% RESTART Not Started NULL NULL 0 MB 0% RECOVERY Not Started NULL NULL 0 MB 0% 46
  • 47. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone : Resource Control • Limit network usage • —clone-max-network-bandwidth (dynamic) • Affects currently running Clone too • —clone-enable-compression • CPU consumption at Donor is going to increase • Limit data usage • —clone-max-data-bandwidth (dynamic) • Set to reduce clone transfer rate to reduce impact • To control Donor’s performance impact (less I/O). • 47
  • 48. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone : Security • Secure connection • CLONE … REQUIRE SSL; — to force secure connection • For encrypted tablespaces SSL is always enforced • —clone-ssl* configurations for using certificates • Clone user at donor instance must have • Privilege to connect from recipient host user@host • BACKUP_ADMIN privilege for data copy • Clone user at recipient must have • CLONE_ADMIN privilege to replace instance data • Donor host name and port must be in the recipient configured list • —clone-valid-donor-list [SYSTEM_VARIABLES_ADMIN privilege is needed] 48
  • 49. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone : Performance Control • Clone plugin uses multiple connections from recipient to donor server • —clone-max-concurrency Limits maximum connections • Helps in preventing CPU/IO/Network saturation
 • Clone starts with 1 thread and threads are increased in steps • —clone-autotune-concurrency [auto tune spawning threads] 49
  • 50. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone : Handles Network Failure 50
  • 51. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Clone : Data Directory 51 • Clone local instance data to a local data directory mysql> CLONE LOCAL DATA DIRECTORY = “/absolute/path/data”; • Clone remote instance data • Instead of replacing current data directory mysql> CLONE INSTANCE FROM clone_user@donor.host.com:3306 IDENTIFIED BY “clone_password” DATA DIRECTORY = “/absolute/path/data”;
  • 52. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Stay tuned to MySQL Server Blogs http://mysqlserverteam.com Thank you for using MySQL!