SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
MySQL Server 8.0
Bogdan Kecman
bogdan.kecman@oracle.com
Copyright © 2017, 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 © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 – Improvements across the board
• Replication
• InnoDB
• Optimizer
• Security
• Performance Schema
• GIS
• Triggers
• Partitioning
• New! SYS Schema
• New! JSON
• Performance
4
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5
The MySQL 5.7 Story (cont.)
JSON Type
JSON Functions
Virtual Columns
GIS Improvements
Observability
Manageability
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
GIS
• Geography Support
• Spatial Reference Systems (SRS) Support
• SQL/MM Information Schema views
• Standard compliant axis ordering in import/export functions
• Helper functions to manipulate and convert data:
• st_x(geom, x)
• st_y(geom, y)
• st_srid(geom, srid)
6
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JSON Functions
7
MySQL 5.7 and 8.0
JSON_ARRAY_APPEND()
JSON_ARRAY_INSERT()
JSON_ARRAY()
JSON_CONTAINS_PATH()
JSON_CONTAINS()
JSON_DEPTH()
JSON_EXTRACT()
JSON_INSERT()
JSON_KEYS()
JSON_LENGTH()
JSON_MERGE()
JSON_OBJECT()
JSON_QUOTE()
JSON_REMOVE()
JSON_REPLACE()
JSON_SEARCH()
JSON_SET()
JSON_TYPE()
JSON_UNQUOTE()
JSON_VALID()
JSON_PRETTY()
JSON_STORAGE_SIZE()
JSON_STORAGE_FREE()
JSON_ARRAYAGG()
JSON_OBJECTAGG()
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JSON Developer Experience
• Ranges in JSON path expressions:
• Optimizer Support for in-place update
• Performance Improvements
8
MySQL 8.0
SELECT doc->>"$[last]" AS last from t1;
+------+
| last |
+------+
| 5 |
+------+
1 row in set (0.00 sec)
SELECT JSON_EXTRACT('[1, 2, 3, 4, 5]', '$[1 to 3]');
+----------------------------------------------+
| JSON_EXTRACT('[1, 2, 3, 4, 5]', '$[1 to 3]') |
+----------------------------------------------+
| [2, 3, 4] |
+----------------------------------------------+
1 row in set (0.00 sec)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
utfmb4 as default character set
• Support for the latest Unicode 9.0
• Accent and case sensitive collations
• Language specific collations
• including Japanese!
9
MySQL 8.0
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
UTF-8
• UTF-8 is the dominating character
set in today’s applications
• Requires 1-4 bytes for storing
characters
• Historically a performance problem
The character set for the Web
10
https://en.wikipedia.org/wiki/UTF-8
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL 8.0 vs MySQL 5.7 utf8mb4
11
0
45000
90000
135000
180000
8 16 64 128 512 1024
SELECT DISTINCT_RANGES
0
10000
20000
30000
40000
8 16 64 128 512 1024
OLTP RO
0
7500
15000
22500
30000
8 16 64 128 512 1024
OLTP RW
+300-350% in OLTP RO
+176-233% in OLTP RW
+1500-1800% in SELECT DISTINCT_RANGES
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL 8.0 utf8mb4 vs MySQL 5.7 utf8mb3
12
0
45000
90000
135000
180000
8 16 64 128 512 1024
SELECT DISTINCT_RANGES
0
10000
20000
30000
40000
8 16 64 128 512 1024
OLTP RO
0
7500
15000
22500
30000
8 16 64 128 512 1024
OLTP RW
+270-340% in OLTP RO
+150-200% in OLTP RW
+1300-1600% in SELECT DISTINCT_RANGES
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! UUID and Bit-wise Improvements
• Functions to convert UUID to and from binary:
– UUID_TO_BIN()
– BIN_TO_UUID()
– plus IS_UUID()
• Bit-wise operations on binary data types
• Bit-wise operations on binary data types
– Designed with IPv6 in mind:
– INET6_ATON(address) & INET6_ATON(network)
13
Feature Request
from Developers
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
UUID_TO_BIN Optimization
14
24.75 25.5 26.25 27. 27.75 28.5 29.25
Insert Performance Optimized
Original
• Binary format is now smaller and insert-order efficient:
11e678fe53303f87a4778c89a52c4f3b
53303f87-78fe-11e6-a477-8c89a52c4f3bFrom VARCHAR(36)
To VARBINARY(16)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Better Handing of Hot Rows
15
SELECT seat_no
FROM seats
JOIN seat_rows USING ( row_no )
WHERE seat_no IN (3,4)
AND seat_rows.row_no IN (12)
AND booked = 'NO'
FOR UPDATE OF seats SKIP LOCKED
FOR SHARE OF seat_rows NOWAIT;
Non
deterministically
skip over locked
rows
Error immediately
if a row is already
locked
Feature Request
from Developers
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Common Table Expressions
• “With queries”
• Both Recursive and Non-Recursive Forms
• Simplifies writing complex SQL:
WITH t1 AS (SELECT * FROM tblA WHERE a=‘b’)
SELECT * FROM t1;
16
Feature Request
from Developers
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 17
Print 1 to 10
Recursive CTE (Example)
a
1
2
3
4
5
6
7
8
9
10
WITH RECURSIVE qn AS
( SELECT 1 AS a
UNION ALL
SELECT 1+a FROM qn WHERE a<10
)
SELECT * FROM qn;
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Window Functions
18
Improving Support for Analytics
Feature Request
from Developers
SELECT name, department_id, salary,
SUM(salary)
OVER (PARTITION BY department_id)
AS department_total
FROM employee
ORDER BY department_id, name;
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 19
Improved to consider buffer pool fit
Optimizer Cost Model
Feature Request
from DBAs
SELECT * FROM Country
WHERE population > 20000000;
Model for a table scan:
# pages in table *
(IO_BLOCK_READ_COST |
MEMORY_BLOCK_READ_COST)
# records *
ROW_EVALUATE_COST
= 25.4 100% in memory
= 29.9 100% on disk
Model for a range scan:
# records_in_range *
(IO_BLOCK_READ_COST |
MEMORY_BLOCK_READ_COS
T)
# records_in_range *
ROW_EVALUATE_COST + #
records_in_range *
ROW_EVALUATE_COST
= 22.5 100% in memory
= 60 100% on disk
Model accounts for
memory fit. For data on
disk an IO block read
defaults to 1.0. In
memory defaults to 0.25.
Much larger
performance
difference for range
scan not in memory
(good)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Descending Indexes
CREATE TABLE t1 (
a INT,
b INT,
INDEX a_desc_b_asc (a DESC, b ASC)
);
21
For B+tree indexes
mysql> EXPLAIN SELECT * FROM t1 ORDER BY a DESC, b ASC;
.. +--------------+---------+------+------+----------+-------------+
.. | key | key_len | ref | rows | filtered | Extra |
.. +--------------+---------+------+------+----------+-------------+
.. | a_desc_b_asc | 10 | NULL | 10 | 100.00 | Using index |
.. +--------------+---------+------+------+----------+-------------+
mysql 8.0> EXPLAIN SELECT * FROM t1 ORDER BY a ASC, b ASC;
.. +--------------+---------+------+------+----------+-----------------------------+
.. | key | key_len | ref | rows | filtered | Extra |
.. +--------------+---------+------+------+----------+-----------------------------+
.. | a_desc_b_asc | 10 | NULL | 10 | 100.00 | Using index; Using filesort |
.. +--------------+---------+------+------+----------+-----------------------------+
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Invisible Indexes
• Indexes are “hidden” to the MySQL Optimizer
– Not the same as “disabled indexes”
– Contents are fully up to date and maintained by DML
• Two use cases:
– Soft Delete (Recycle Bin)
– Staged Rollout
22
Feature Request
from DBAs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 23
Example Usage
Soft Delete
• I don’t think this index is used any more:
ALTER TABLE Country ALTER INDEX c INVISIBLE;
• I need to revert:
ALTER TABLE Country ALTER INDEX c VISIBLE;
• It is now safe to drop:
ALTER TABLE Country DROP INDEX c;
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Staged Rollout
• Adding any new index can change existing execution plans
• All change introduces risk of regression
ALTER TABLE Country ADD INDEX c (Continent)
INVISIBLE;
# after some time
ALTER TABLE Country ALTER INDEX c VISIBLE;
24
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 25
SELECT * FROM information_schema.statistics WHERE is_visible='NO';
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: world
TABLE_NAME: Country
NON_UNIQUE: 1
INDEX_SCHEMA: world
INDEX_NAME: c
SEQ_IN_INDEX: 1
COLUMN_NAME: Continent
COLLATION: A
CARDINALITY: 7
SUB_PART: NULL
PACKED: NULL
NULLABLE:
INDEX_TYPE: BTREE
COMMENT: disabled
INDEX_COMMENT:
IS_VISIBLE: NO
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! MySQL Roles
Improving MySQL Access Controls
• Introduced in the 8.0.0 DMR
• Easier to manage user and applications rights
• As standards compliant as practically possible
• Multiple default roles
• Can export the role graph in GraphML
26
Feature Request
from DBAs
Directly
In directly
Set Role(s)
Default Role(s)
Set of
ACLS
Set of
ACLS
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Atomic ACL Statements
• Long standing MySQL issue!
– For Replication, HA, Backups, etc.
• Possible now - ACL tables reside in InnoDB Data Dictionary
• Not just a table operation: memory caches need update too
• Applies to statements performing multiple logical operations, e.g.
– CREATE USER u1, u2
– GRANT SELECT ON *.* TO u1, u2
• Uses a custom MDL lock to block ACL related activity
– While altering the ACL caches and tables
27
Feature Request
from DBAs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Dynamic Privileges
Provides finer grained administrative level access controls
• Too often super is required for tasks when less privilege is really needed
– Support concept of “least privilege”
• Needed to allow adding administrative access controls
– Now can come with new components
– Examples
• Replication
• HA
• Backup
• Give us your ideas
28
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! InnoDB Redo and Undo Encryption
• AES 256 encryption
• Encrypted when redo/undo log data is written to disk
• Decryption occurs when redo/undo log data is read from disk
• Once redo/undo log data is read into memory, it is in unencrypted form.
• Two tiered encryption – like Innodb tablepace encryption
– Fast key rotation, high performance
• Easy to use
– Enabled using innodb_redo_log_encrypt and innodb_undo_log_encrypt
29
Feature Request
from DBAs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 30
Evolution from MySQL 5.5 to 8.0
Performance Schema
Feature Request
from DBAs
MySQL 8.0
Histograms
Indexes
Data Locks instrumentation
SQL Errors instrumentation
Variables Instrumentation
Table plugin
Improved Defaults
MySQL 5.7
Memory Instrumentation
Prepared Statements Instrumentation
Transactions Instrumentation
Scalable Memory Allocation
Bundled SYS schema
Lower Overhead
MySQL 5.6
Statement Instrumentation
Lower Overhead
MySQL 5.5
Event Waits
Mutexes
Files
Threads
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 31
Performance Comparison
0. 10. 20. 30. 40.
Query Time MySQL 8.0
MySQL 5.7
Over 30x faster!
SELECT * FROM sys.session
1000 active sessions
Time in Seconds (Lower is better)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 32
SELECT * FROM test.no_table;
ERROR 1146 (42S02): Table 'test.no_table' doesn't exist
SELECT * FROM performance_schema.events_errors_summary_global_by_error
WHERE sum_error_handled > 0 OR SUM_ERROR_RAISED > 0G
*************************** 1. row ***************************
ERROR_NUMBER: 1146
ERROR_NAME: ER_NO_SUCH_TABLE
SQL_STATE: 42S02
SUM_ERROR_RAISED: 1
SUM_ERROR_HANDLED: 0
FIRST_SEEN: 2016-09-11 20:52:42
LAST_SEEN: 2016-09-11 20:52:42
1 row in set (0.00 sec)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
query: INSERT INTO `t1` VALUES (...)
db: mysqlslap
total_latency: 54.43 s
exec_count: 58377
lock_latency: 1.70 s
..
digest: 4e0c5b796c4052b0da4548fd7cb694be
first_seen: 2017-04-16 20:59:16
last_seen: 2017-04-16 21:00:34
latency_distribution:
0us+
10us+ #############################
100us+ ####################
1ms+ #
10ms+
100ms+
1s+
10s+
New! Performance Schema Histograms
33
+---------+--------------------------------+-------+
| bucket | visualization | count |
+---------+--------------------------------+-------+
| 0us+ | # | 1253 |
| 10us+ | ############################## | 43102 |
| 100us+ | ################# | 25013 |
| 1ms+ | # | 2003 |
| 10ms+ | | 325 |
| 100ms+ | | 17 |
| 1s+ | | 0 |
| 10s+ | | 0 |
+---------+--------------------------------+-------+
8 rows in set (0.08 sec)
Showing distribution of query time from a run of mysqlslap
Generated with a quick CTE
over
events_statements_histogram
_global
Feature Request
from DBAs
Available on a per statement
digest level. Can quickly
aggregate top-N statements
with latency distribution.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Performance Schema Data Locks
34
SELECT thread_id, object_name, index_name, lock_type, lock_mode, lock_data
FROM performance_schema.data_locks WHERE object_name = 'seats';
+-----------+-------------+------------+-----------+-----------+-----------+
| thread_id | object_name | index_name | lock_type | lock_mode | lock_data |
+-----------+-------------+------------+-----------+-----------+-----------+
| 33 | seats | NULL | TABLE | IX | NULL |
| 33 | seats | PRIMARY | RECORD | X | 3, 5 |
| 33 | seats | PRIMARY | RECORD | X | 3, 6 |
| 33 | seats | PRIMARY | RECORD | X | 4, 5 |
| 33 | seats | PRIMARY | RECORD | X | 4, 6 |
+-----------+-------------+------------+-----------+-----------+-----------+
5 rows in set (0.00 sec)
Feature Request
from DBAs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 35
New! Persist Configuration
• Persist GLOBAL Server Variables
– SET PERSIST max_connections = 500;
– SET PERSIST_ONLY innodb_log_file_size = 128*1024*1024;
• Examples Include:
– Offline_mode
– Read_Only
• Requires no filesystem access
Cloud Friendly
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Variables Info
36
Find the source of variables changed on your installation
SELECT * FROM performance_schema.variables_info WHERE variable_source != 'COMPILED';
+------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+
| VARIABLE_NAME | VARIABLE_SOURCE | VARIABLE_PATH | MIN_VALUE | MAX_VALUE | SET_TIME | SET_USER | SET_HOST |
+------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+
| autocommit | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| basedir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| bind_address | EXPLICIT | [..]my.sandbox.cnf | 0 | 0 | 2017-04-16 21:08:11 | | |
| character_set_client | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| character_set_results | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| collation_connection | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| datadir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| foreign_key_checks | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| log_error | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| lower_case_table_names | EXPLICIT | [..]my.sandbox.cnf | 0 | 2 | 2017-04-16 21:08:11 | | |
| pid_file | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| plugin_dir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| port | COMMAND_LINE | | 0 | 65535 | 2017-04-16 21:08:11 | | |
| socket | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| sql_mode | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| sql_notes | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| time_zone | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| tmpdir | EXPLICIT | [..]my.sandbox.cnf | 0 | 0 | 2017-04-16 21:08:11 | | |
| unique_checks | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
+------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+
19 rows in set (0.00 sec)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Transactional Data Dictionary
• Increased Reliability
• Using InnoDB internally for data dictionary
– No FRM files
– No DB.OPT files
– No TRG files
– No TRN files
– No PAR files
• MySQL 8.0 default install no longer contains MyISAM tables.
37
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 39
100 schemas times 50 tables (5000 tables)
Information Schema Performance
0. 1. 2. 3. 4.
Count All Schemas
Schema aggregate size stats
All Dynamic Table Info
All Static Table Info
Auto Increments Near Limit
Count All Columns
Count All Indexes
MySQL 8.0
MySQL 5.7
Time in Seconds (Lower is better)
Already faster at 7/10
queries in our test suite!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
30x
Faster
SELECT TABLE_SCHEMA,
TABLE_NAME, TABLE_TYPE,
ENGINE, ROW_FORMAT
FROM information_schema.tables
WHERE TABLE_SCHEMA LIKE 'db%';
40
Test Performed with 100 schemas, each with 50 tables.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• Source code now documented with Doxygen
• New Plugin Infrastructure
• Expanded GIS Support
• Expanded Query Hints Support
• Improved Scan Query Performance
• Improved BLOB Storage
• Improved Memcached Interface
• InnoDB Auto Increment Persists
• Cost Model Improvements
• Scalability Improvements
• Atomicity in Privileges
• Parser Refactoring
• Improvements to Temporary Tables
• C++11 and Toolchain Improvements
• Replication Applier Thread Progress Reports
• GTID_PURGED always settable
• Undo tablespaces now dynamic
• In memory storage engine
• New! Improved Parallel Replication
• New! SQL Grouping Function
• New! Optimizer Trace detailed sort statistics
• New! Smaller Package Downloads
• New! JSON Aggregate, Pretty print functions
• New! JSON performance improvements
• New! Expanded Query Hints
• New! Improved usability of cost constant configuration
42
All these features plus…
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
HVALA NA PAŽNjI
pitanja?
Bogdan Kecman
bogdan.kecman@oracle.com

Contenu connexe

Tendances

An Approach to Sql tuning - Part 1
An Approach to Sql tuning - Part 1An Approach to Sql tuning - Part 1
An Approach to Sql tuning - Part 1Navneet Upneja
 
MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query OptimizationMorgan Tocker
 
Top 10 tips for Oracle performance
Top 10 tips for Oracle performanceTop 10 tips for Oracle performance
Top 10 tips for Oracle performanceGuy Harrison
 
Think Exa!
Think Exa!Think Exa!
Think Exa!Enkitec
 
In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1Enkitec
 
PostgreSQL 9.6 Performance-Scalability Improvements
PostgreSQL 9.6 Performance-Scalability ImprovementsPostgreSQL 9.6 Performance-Scalability Improvements
PostgreSQL 9.6 Performance-Scalability ImprovementsPGConf APAC
 
Top 10 Oracle SQL tuning tips
Top 10 Oracle SQL tuning tipsTop 10 Oracle SQL tuning tips
Top 10 Oracle SQL tuning tipsNirav Shah
 
VirtaThon 2011 - Mining the AWR
VirtaThon 2011 - Mining the AWRVirtaThon 2011 - Mining the AWR
VirtaThon 2011 - Mining the AWRKristofferson A
 
How to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsHow to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsSveta Smirnova
 
How to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollHow to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollPGConf APAC
 
Data Profiling in Apache Calcite
Data Profiling in Apache CalciteData Profiling in Apache Calcite
Data Profiling in Apache CalciteJulian Hyde
 
MySQL Optimizer Cost Model
MySQL Optimizer Cost ModelMySQL Optimizer Cost Model
MySQL Optimizer Cost ModelOlav Sandstå
 
Oracle Database Advanced Querying (2016)
Oracle Database Advanced Querying (2016)Oracle Database Advanced Querying (2016)
Oracle Database Advanced Querying (2016)Zohar Elkayam
 
MySQL Indexing - Best practices for MySQL 5.6
MySQL Indexing - Best practices for MySQL 5.6MySQL Indexing - Best practices for MySQL 5.6
MySQL Indexing - Best practices for MySQL 5.6MYXPLAIN
 
MySQL For Linux Sysadmins
MySQL For Linux SysadminsMySQL For Linux Sysadmins
MySQL For Linux SysadminsMorgan Tocker
 
Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Rajeev Rastogi (KRR)
 
Spatial query on vanilla databases
Spatial query on vanilla databasesSpatial query on vanilla databases
Spatial query on vanilla databasesJulian Hyde
 
Indexing in Exadata
Indexing in ExadataIndexing in Exadata
Indexing in ExadataEnkitec
 
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Julian Hyde
 

Tendances (20)

An Approach to Sql tuning - Part 1
An Approach to Sql tuning - Part 1An Approach to Sql tuning - Part 1
An Approach to Sql tuning - Part 1
 
MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query Optimization
 
Top 10 tips for Oracle performance
Top 10 tips for Oracle performanceTop 10 tips for Oracle performance
Top 10 tips for Oracle performance
 
Think Exa!
Think Exa!Think Exa!
Think Exa!
 
In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1
 
PostgreSQL 9.6 Performance-Scalability Improvements
PostgreSQL 9.6 Performance-Scalability ImprovementsPostgreSQL 9.6 Performance-Scalability Improvements
PostgreSQL 9.6 Performance-Scalability Improvements
 
Top 10 Oracle SQL tuning tips
Top 10 Oracle SQL tuning tipsTop 10 Oracle SQL tuning tips
Top 10 Oracle SQL tuning tips
 
VirtaThon 2011 - Mining the AWR
VirtaThon 2011 - Mining the AWRVirtaThon 2011 - Mining the AWR
VirtaThon 2011 - Mining the AWR
 
How to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsHow to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tears
 
How to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'rollHow to teach an elephant to rock'n'roll
How to teach an elephant to rock'n'roll
 
Data Profiling in Apache Calcite
Data Profiling in Apache CalciteData Profiling in Apache Calcite
Data Profiling in Apache Calcite
 
MySQL Optimizer Cost Model
MySQL Optimizer Cost ModelMySQL Optimizer Cost Model
MySQL Optimizer Cost Model
 
Oracle Database Advanced Querying (2016)
Oracle Database Advanced Querying (2016)Oracle Database Advanced Querying (2016)
Oracle Database Advanced Querying (2016)
 
MySQL Indexing - Best practices for MySQL 5.6
MySQL Indexing - Best practices for MySQL 5.6MySQL Indexing - Best practices for MySQL 5.6
MySQL Indexing - Best practices for MySQL 5.6
 
MySQL For Linux Sysadmins
MySQL For Linux SysadminsMySQL For Linux Sysadmins
MySQL For Linux Sysadmins
 
Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2
 
Spatial query on vanilla databases
Spatial query on vanilla databasesSpatial query on vanilla databases
Spatial query on vanilla databases
 
Optimizing MySQL
Optimizing MySQLOptimizing MySQL
Optimizing MySQL
 
Indexing in Exadata
Indexing in ExadataIndexing in Exadata
Indexing in Exadata
 
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
 

Similaire à Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0

What's New MySQL 8.0?
What's New MySQL 8.0?What's New MySQL 8.0?
What's New MySQL 8.0?OracleMySQL
 
MySQL 8.0 Released Update
MySQL 8.0 Released UpdateMySQL 8.0 Released Update
MySQL 8.0 Released UpdateKeith Hollman
 
My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2Morgan Tocker
 
MySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreMySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreAbel Flórez
 
Optimizer percona live_ams2015
Optimizer percona live_ams2015Optimizer percona live_ams2015
Optimizer percona live_ams2015Manyi Lu
 
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 upgradeAbel Flórez
 
Performance schema and sys schema
Performance schema and sys schemaPerformance schema and sys schema
Performance schema and sys schemaMark Leith
 
MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0Manyi Lu
 
MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)
MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)
MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)Dave Stokes
 
MySQL 5.7 Tutorial Dutch PHP Conference 2015
MySQL 5.7 Tutorial Dutch PHP Conference 2015MySQL 5.7 Tutorial Dutch PHP Conference 2015
MySQL 5.7 Tutorial Dutch PHP Conference 2015Dave Stokes
 
MySQL 5.7. Tutorial - Dutch PHP Conference 2015
MySQL 5.7. Tutorial - Dutch PHP Conference 2015MySQL 5.7. Tutorial - Dutch PHP Conference 2015
MySQL 5.7. Tutorial - Dutch PHP Conference 2015Dave Stokes
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMark Swarbrick
 
MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZE
MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZEMySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZE
MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZENorvald Ryeng
 
Sql and PL/SQL Best Practices I
Sql and PL/SQL Best Practices ISql and PL/SQL Best Practices I
Sql and PL/SQL Best Practices ICarlos Oliveira
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesDave Stokes
 
The MySQL SYS Schema
The MySQL SYS SchemaThe MySQL SYS Schema
The MySQL SYS SchemaMark Leith
 
Mysql 57-upcoming-changes
Mysql 57-upcoming-changesMysql 57-upcoming-changes
Mysql 57-upcoming-changesMorgan Tocker
 
Query Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksQuery Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksMYXPLAIN
 
New index features in MySQL 8
New index features in MySQL 8New index features in MySQL 8
New index features in MySQL 8Erik Frøseth
 

Similaire à Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0 (20)

What's New MySQL 8.0?
What's New MySQL 8.0?What's New MySQL 8.0?
What's New MySQL 8.0?
 
MySQL 8.0 Released Update
MySQL 8.0 Released UpdateMySQL 8.0 Released Update
MySQL 8.0 Released Update
 
My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2
 
MySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreMySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document Store
 
Optimizer percona live_ams2015
Optimizer percona live_ams2015Optimizer percona live_ams2015
Optimizer percona live_ams2015
 
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
 
Performance schema and sys schema
Performance schema and sys schemaPerformance schema and sys schema
Performance schema and sys schema
 
MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0
 
MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)
MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)
MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)
 
MySQL 5.7 Tutorial Dutch PHP Conference 2015
MySQL 5.7 Tutorial Dutch PHP Conference 2015MySQL 5.7 Tutorial Dutch PHP Conference 2015
MySQL 5.7 Tutorial Dutch PHP Conference 2015
 
MySQL 5.7. Tutorial - Dutch PHP Conference 2015
MySQL 5.7. Tutorial - Dutch PHP Conference 2015MySQL 5.7. Tutorial - Dutch PHP Conference 2015
MySQL 5.7. Tutorial - Dutch PHP Conference 2015
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats new
 
MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZE
MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZEMySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZE
MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZE
 
Sql and PL/SQL Best Practices I
Sql and PL/SQL Best Practices ISql and PL/SQL Best Practices I
Sql and PL/SQL Best Practices I
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
 
Oracle 12c SPM
Oracle 12c SPMOracle 12c SPM
Oracle 12c SPM
 
The MySQL SYS Schema
The MySQL SYS SchemaThe MySQL SYS Schema
The MySQL SYS Schema
 
Mysql 57-upcoming-changes
Mysql 57-upcoming-changesMysql 57-upcoming-changes
Mysql 57-upcoming-changes
 
Query Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksQuery Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New Tricks
 
New index features in MySQL 8
New index features in MySQL 8New index features in MySQL 8
New index features in MySQL 8
 

Plus de mCloud

Developers’ mDay 2021: Robert Juhas, SimpleTask – Should I run my own blockc...
Developers’ mDay 2021: Robert Juhas, SimpleTask –  Should I run my own blockc...Developers’ mDay 2021: Robert Juhas, SimpleTask –  Should I run my own blockc...
Developers’ mDay 2021: Robert Juhas, SimpleTask – Should I run my own blockc...mCloud
 
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...mCloud
 
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...mCloud
 
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source pričaDevelopers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source pričamCloud
 
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel AwesomeDevelopers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel AwesomemCloud
 
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta daljeDevelopers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta daljemCloud
 
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQLDevelopers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQLmCloud
 
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sadDevelopers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sadmCloud
 
Developers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay 2021: Jelena Opačić, mCloud – DobrodošlicaDevelopers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay 2021: Jelena Opačić, mCloud – DobrodošlicamCloud
 
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...mCloud
 
Developers’ mDay 2019. - Dijana Milutinović, RNIDS – Kako se kalio domen
Developers’ mDay 2019. -  Dijana Milutinović, RNIDS – Kako se kalio domenDevelopers’ mDay 2019. -  Dijana Milutinović, RNIDS – Kako se kalio domen
Developers’ mDay 2019. - Dijana Milutinović, RNIDS – Kako se kalio domenmCloud
 
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgradeDevelopers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrademCloud
 
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...mCloud
 
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivityDevelopers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivitymCloud
 
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...mCloud
 
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...mCloud
 
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3mCloud
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...mCloud
 
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – DobrodošlicaDevelopers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – DobrodošlicamCloud
 
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...mCloud
 

Plus de mCloud (20)

Developers’ mDay 2021: Robert Juhas, SimpleTask – Should I run my own blockc...
Developers’ mDay 2021: Robert Juhas, SimpleTask –  Should I run my own blockc...Developers’ mDay 2021: Robert Juhas, SimpleTask –  Should I run my own blockc...
Developers’ mDay 2021: Robert Juhas, SimpleTask – Should I run my own blockc...
 
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
Developers’ mDay 2021: Andrea Bjelogrlić, Sysbee – Tips, tricks and debugging...
 
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
Developers’ mDay 2021: Goran Kunjadić, Cyber security, cryptography and DPO e...
 
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source pričaDevelopers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
Developers’ mDay 2021: Igor Spasić, Oblac – Jodd, jedna open-source priča
 
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel AwesomeDevelopers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
Developers’ mDay 2021: Mladen Janjetović, Laravel Srbija – Laravel Awesome
 
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta daljeDevelopers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
Developers’ mDay 2021: Nikola Krgović, Twin Star Systems – CentOS i šta dalje
 
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQLDevelopers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
Developers’ mDay 2021: Nebojša Kamber, Infostud – SQL vs noSQL
 
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sadDevelopers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
Developers’ mDay 2021: Bogdan Kecman, Oracle – MySQL nekad i sad
 
Developers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay 2021: Jelena Opačić, mCloud – DobrodošlicaDevelopers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay 2021: Jelena Opačić, mCloud – Dobrodošlica
 
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
Developers’ mDay 2019. - Zvonimir Gembec, Sysbee – Developers vs Sysadmins – ...
 
Developers’ mDay 2019. - Dijana Milutinović, RNIDS – Kako se kalio domen
Developers’ mDay 2019. -  Dijana Milutinović, RNIDS – Kako se kalio domenDevelopers’ mDay 2019. -  Dijana Milutinović, RNIDS – Kako se kalio domen
Developers’ mDay 2019. - Dijana Milutinović, RNIDS – Kako se kalio domen
 
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgradeDevelopers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
Developers’ mDay 2019. - Bogdan Kecman, Oracle – MySQL 8.0 – why upgrade
 
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
Developers’ mDay 2019. - Rastko Vasiljević, SuperAdmins – Infrastructure as c...
 
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivityDevelopers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
Developers’ mDay 2019. - Dejan Bosanac, Red Hat – Cloud scale IoT connectivity
 
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
Developers’ mDay 2019. - Adrian Smijulj, Webiny – Server-side rendering u Ser...
 
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
Developers’ mDay 2019. - Nikola Krgović, Twin Star Systems – Big Data for Dev...
 
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
Developers’ mDay 2019. - Dragutin Ćirković, mCloud – HTTP/3
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
 
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – DobrodošlicaDevelopers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
Developers’ mDay u Banjoj Luci - Jelena Opačić, mCloud – Dobrodošlica
 
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
Developers’ mDay u Banjoj Luci - Duško Bajić, Kotlin User Group Bosnia – Kotl...
 

Dernier

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Dernier (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0

  • 1. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | MySQL Server 8.0 Bogdan Kecman bogdan.kecman@oracle.com
  • 2.
  • 3. Copyright © 2017, 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 © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 – Improvements across the board • Replication • InnoDB • Optimizer • Security • Performance Schema • GIS • Triggers • Partitioning • New! SYS Schema • New! JSON • Performance 4
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5 The MySQL 5.7 Story (cont.) JSON Type JSON Functions Virtual Columns GIS Improvements Observability Manageability
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | GIS • Geography Support • Spatial Reference Systems (SRS) Support • SQL/MM Information Schema views • Standard compliant axis ordering in import/export functions • Helper functions to manipulate and convert data: • st_x(geom, x) • st_y(geom, y) • st_srid(geom, srid) 6
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JSON Functions 7 MySQL 5.7 and 8.0 JSON_ARRAY_APPEND() JSON_ARRAY_INSERT() JSON_ARRAY() JSON_CONTAINS_PATH() JSON_CONTAINS() JSON_DEPTH() JSON_EXTRACT() JSON_INSERT() JSON_KEYS() JSON_LENGTH() JSON_MERGE() JSON_OBJECT() JSON_QUOTE() JSON_REMOVE() JSON_REPLACE() JSON_SEARCH() JSON_SET() JSON_TYPE() JSON_UNQUOTE() JSON_VALID() JSON_PRETTY() JSON_STORAGE_SIZE() JSON_STORAGE_FREE() JSON_ARRAYAGG() JSON_OBJECTAGG()
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JSON Developer Experience • Ranges in JSON path expressions: • Optimizer Support for in-place update • Performance Improvements 8 MySQL 8.0 SELECT doc->>"$[last]" AS last from t1; +------+ | last | +------+ | 5 | +------+ 1 row in set (0.00 sec) SELECT JSON_EXTRACT('[1, 2, 3, 4, 5]', '$[1 to 3]'); +----------------------------------------------+ | JSON_EXTRACT('[1, 2, 3, 4, 5]', '$[1 to 3]') | +----------------------------------------------+ | [2, 3, 4] | +----------------------------------------------+ 1 row in set (0.00 sec)
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | utfmb4 as default character set • Support for the latest Unicode 9.0 • Accent and case sensitive collations • Language specific collations • including Japanese! 9 MySQL 8.0
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | UTF-8 • UTF-8 is the dominating character set in today’s applications • Requires 1-4 bytes for storing characters • Historically a performance problem The character set for the Web 10 https://en.wikipedia.org/wiki/UTF-8
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL 8.0 vs MySQL 5.7 utf8mb4 11 0 45000 90000 135000 180000 8 16 64 128 512 1024 SELECT DISTINCT_RANGES 0 10000 20000 30000 40000 8 16 64 128 512 1024 OLTP RO 0 7500 15000 22500 30000 8 16 64 128 512 1024 OLTP RW +300-350% in OLTP RO +176-233% in OLTP RW +1500-1800% in SELECT DISTINCT_RANGES
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL 8.0 utf8mb4 vs MySQL 5.7 utf8mb3 12 0 45000 90000 135000 180000 8 16 64 128 512 1024 SELECT DISTINCT_RANGES 0 10000 20000 30000 40000 8 16 64 128 512 1024 OLTP RO 0 7500 15000 22500 30000 8 16 64 128 512 1024 OLTP RW +270-340% in OLTP RO +150-200% in OLTP RW +1300-1600% in SELECT DISTINCT_RANGES
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! UUID and Bit-wise Improvements • Functions to convert UUID to and from binary: – UUID_TO_BIN() – BIN_TO_UUID() – plus IS_UUID() • Bit-wise operations on binary data types • Bit-wise operations on binary data types – Designed with IPv6 in mind: – INET6_ATON(address) & INET6_ATON(network) 13 Feature Request from Developers
  • 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | UUID_TO_BIN Optimization 14 24.75 25.5 26.25 27. 27.75 28.5 29.25 Insert Performance Optimized Original • Binary format is now smaller and insert-order efficient: 11e678fe53303f87a4778c89a52c4f3b 53303f87-78fe-11e6-a477-8c89a52c4f3bFrom VARCHAR(36) To VARBINARY(16)
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Better Handing of Hot Rows 15 SELECT seat_no FROM seats JOIN seat_rows USING ( row_no ) WHERE seat_no IN (3,4) AND seat_rows.row_no IN (12) AND booked = 'NO' FOR UPDATE OF seats SKIP LOCKED FOR SHARE OF seat_rows NOWAIT; Non deterministically skip over locked rows Error immediately if a row is already locked Feature Request from Developers
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Common Table Expressions • “With queries” • Both Recursive and Non-Recursive Forms • Simplifies writing complex SQL: WITH t1 AS (SELECT * FROM tblA WHERE a=‘b’) SELECT * FROM t1; 16 Feature Request from Developers
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 17 Print 1 to 10 Recursive CTE (Example) a 1 2 3 4 5 6 7 8 9 10 WITH RECURSIVE qn AS ( SELECT 1 AS a UNION ALL SELECT 1+a FROM qn WHERE a<10 ) SELECT * FROM qn;
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Window Functions 18 Improving Support for Analytics Feature Request from Developers SELECT name, department_id, salary, SUM(salary) OVER (PARTITION BY department_id) AS department_total FROM employee ORDER BY department_id, name;
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 19 Improved to consider buffer pool fit Optimizer Cost Model Feature Request from DBAs SELECT * FROM Country WHERE population > 20000000; Model for a table scan: # pages in table * (IO_BLOCK_READ_COST | MEMORY_BLOCK_READ_COST) # records * ROW_EVALUATE_COST = 25.4 100% in memory = 29.9 100% on disk Model for a range scan: # records_in_range * (IO_BLOCK_READ_COST | MEMORY_BLOCK_READ_COS T) # records_in_range * ROW_EVALUATE_COST + # records_in_range * ROW_EVALUATE_COST = 22.5 100% in memory = 60 100% on disk Model accounts for memory fit. For data on disk an IO block read defaults to 1.0. In memory defaults to 0.25. Much larger performance difference for range scan not in memory (good)
  • 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Descending Indexes CREATE TABLE t1 ( a INT, b INT, INDEX a_desc_b_asc (a DESC, b ASC) ); 21 For B+tree indexes mysql> EXPLAIN SELECT * FROM t1 ORDER BY a DESC, b ASC; .. +--------------+---------+------+------+----------+-------------+ .. | key | key_len | ref | rows | filtered | Extra | .. +--------------+---------+------+------+----------+-------------+ .. | a_desc_b_asc | 10 | NULL | 10 | 100.00 | Using index | .. +--------------+---------+------+------+----------+-------------+ mysql 8.0> EXPLAIN SELECT * FROM t1 ORDER BY a ASC, b ASC; .. +--------------+---------+------+------+----------+-----------------------------+ .. | key | key_len | ref | rows | filtered | Extra | .. +--------------+---------+------+------+----------+-----------------------------+ .. | a_desc_b_asc | 10 | NULL | 10 | 100.00 | Using index; Using filesort | .. +--------------+---------+------+------+----------+-----------------------------+
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Invisible Indexes • Indexes are “hidden” to the MySQL Optimizer – Not the same as “disabled indexes” – Contents are fully up to date and maintained by DML • Two use cases: – Soft Delete (Recycle Bin) – Staged Rollout 22 Feature Request from DBAs
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 23 Example Usage Soft Delete • I don’t think this index is used any more: ALTER TABLE Country ALTER INDEX c INVISIBLE; • I need to revert: ALTER TABLE Country ALTER INDEX c VISIBLE; • It is now safe to drop: ALTER TABLE Country DROP INDEX c;
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Staged Rollout • Adding any new index can change existing execution plans • All change introduces risk of regression ALTER TABLE Country ADD INDEX c (Continent) INVISIBLE; # after some time ALTER TABLE Country ALTER INDEX c VISIBLE; 24
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 25 SELECT * FROM information_schema.statistics WHERE is_visible='NO'; *************************** 1. row *************************** TABLE_CATALOG: def TABLE_SCHEMA: world TABLE_NAME: Country NON_UNIQUE: 1 INDEX_SCHEMA: world INDEX_NAME: c SEQ_IN_INDEX: 1 COLUMN_NAME: Continent COLLATION: A CARDINALITY: 7 SUB_PART: NULL PACKED: NULL NULLABLE: INDEX_TYPE: BTREE COMMENT: disabled INDEX_COMMENT: IS_VISIBLE: NO
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! MySQL Roles Improving MySQL Access Controls • Introduced in the 8.0.0 DMR • Easier to manage user and applications rights • As standards compliant as practically possible • Multiple default roles • Can export the role graph in GraphML 26 Feature Request from DBAs Directly In directly Set Role(s) Default Role(s) Set of ACLS Set of ACLS
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Atomic ACL Statements • Long standing MySQL issue! – For Replication, HA, Backups, etc. • Possible now - ACL tables reside in InnoDB Data Dictionary • Not just a table operation: memory caches need update too • Applies to statements performing multiple logical operations, e.g. – CREATE USER u1, u2 – GRANT SELECT ON *.* TO u1, u2 • Uses a custom MDL lock to block ACL related activity – While altering the ACL caches and tables 27 Feature Request from DBAs
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Dynamic Privileges Provides finer grained administrative level access controls • Too often super is required for tasks when less privilege is really needed – Support concept of “least privilege” • Needed to allow adding administrative access controls – Now can come with new components – Examples • Replication • HA • Backup • Give us your ideas 28
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! InnoDB Redo and Undo Encryption • AES 256 encryption • Encrypted when redo/undo log data is written to disk • Decryption occurs when redo/undo log data is read from disk • Once redo/undo log data is read into memory, it is in unencrypted form. • Two tiered encryption – like Innodb tablepace encryption – Fast key rotation, high performance • Easy to use – Enabled using innodb_redo_log_encrypt and innodb_undo_log_encrypt 29 Feature Request from DBAs
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 30 Evolution from MySQL 5.5 to 8.0 Performance Schema Feature Request from DBAs MySQL 8.0 Histograms Indexes Data Locks instrumentation SQL Errors instrumentation Variables Instrumentation Table plugin Improved Defaults MySQL 5.7 Memory Instrumentation Prepared Statements Instrumentation Transactions Instrumentation Scalable Memory Allocation Bundled SYS schema Lower Overhead MySQL 5.6 Statement Instrumentation Lower Overhead MySQL 5.5 Event Waits Mutexes Files Threads
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 31 Performance Comparison 0. 10. 20. 30. 40. Query Time MySQL 8.0 MySQL 5.7 Over 30x faster! SELECT * FROM sys.session 1000 active sessions Time in Seconds (Lower is better)
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 32 SELECT * FROM test.no_table; ERROR 1146 (42S02): Table 'test.no_table' doesn't exist SELECT * FROM performance_schema.events_errors_summary_global_by_error WHERE sum_error_handled > 0 OR SUM_ERROR_RAISED > 0G *************************** 1. row *************************** ERROR_NUMBER: 1146 ERROR_NAME: ER_NO_SUCH_TABLE SQL_STATE: 42S02 SUM_ERROR_RAISED: 1 SUM_ERROR_HANDLED: 0 FIRST_SEEN: 2016-09-11 20:52:42 LAST_SEEN: 2016-09-11 20:52:42 1 row in set (0.00 sec)
  • 32. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | query: INSERT INTO `t1` VALUES (...) db: mysqlslap total_latency: 54.43 s exec_count: 58377 lock_latency: 1.70 s .. digest: 4e0c5b796c4052b0da4548fd7cb694be first_seen: 2017-04-16 20:59:16 last_seen: 2017-04-16 21:00:34 latency_distribution: 0us+ 10us+ ############################# 100us+ #################### 1ms+ # 10ms+ 100ms+ 1s+ 10s+ New! Performance Schema Histograms 33 +---------+--------------------------------+-------+ | bucket | visualization | count | +---------+--------------------------------+-------+ | 0us+ | # | 1253 | | 10us+ | ############################## | 43102 | | 100us+ | ################# | 25013 | | 1ms+ | # | 2003 | | 10ms+ | | 325 | | 100ms+ | | 17 | | 1s+ | | 0 | | 10s+ | | 0 | +---------+--------------------------------+-------+ 8 rows in set (0.08 sec) Showing distribution of query time from a run of mysqlslap Generated with a quick CTE over events_statements_histogram _global Feature Request from DBAs Available on a per statement digest level. Can quickly aggregate top-N statements with latency distribution.
  • 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Performance Schema Data Locks 34 SELECT thread_id, object_name, index_name, lock_type, lock_mode, lock_data FROM performance_schema.data_locks WHERE object_name = 'seats'; +-----------+-------------+------------+-----------+-----------+-----------+ | thread_id | object_name | index_name | lock_type | lock_mode | lock_data | +-----------+-------------+------------+-----------+-----------+-----------+ | 33 | seats | NULL | TABLE | IX | NULL | | 33 | seats | PRIMARY | RECORD | X | 3, 5 | | 33 | seats | PRIMARY | RECORD | X | 3, 6 | | 33 | seats | PRIMARY | RECORD | X | 4, 5 | | 33 | seats | PRIMARY | RECORD | X | 4, 6 | +-----------+-------------+------------+-----------+-----------+-----------+ 5 rows in set (0.00 sec) Feature Request from DBAs
  • 34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 35 New! Persist Configuration • Persist GLOBAL Server Variables – SET PERSIST max_connections = 500; – SET PERSIST_ONLY innodb_log_file_size = 128*1024*1024; • Examples Include: – Offline_mode – Read_Only • Requires no filesystem access Cloud Friendly
  • 35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Variables Info 36 Find the source of variables changed on your installation SELECT * FROM performance_schema.variables_info WHERE variable_source != 'COMPILED'; +------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+ | VARIABLE_NAME | VARIABLE_SOURCE | VARIABLE_PATH | MIN_VALUE | MAX_VALUE | SET_TIME | SET_USER | SET_HOST | +------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+ | autocommit | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | basedir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | bind_address | EXPLICIT | [..]my.sandbox.cnf | 0 | 0 | 2017-04-16 21:08:11 | | | | character_set_client | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | character_set_results | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | collation_connection | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | datadir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | foreign_key_checks | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | log_error | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | lower_case_table_names | EXPLICIT | [..]my.sandbox.cnf | 0 | 2 | 2017-04-16 21:08:11 | | | | pid_file | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | plugin_dir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | port | COMMAND_LINE | | 0 | 65535 | 2017-04-16 21:08:11 | | | | socket | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | sql_mode | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | sql_notes | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | time_zone | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | tmpdir | EXPLICIT | [..]my.sandbox.cnf | 0 | 0 | 2017-04-16 21:08:11 | | | | unique_checks | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | +------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+ 19 rows in set (0.00 sec)
  • 36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Transactional Data Dictionary • Increased Reliability • Using InnoDB internally for data dictionary – No FRM files – No DB.OPT files – No TRG files – No TRN files – No PAR files • MySQL 8.0 default install no longer contains MyISAM tables. 37
  • 37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 39 100 schemas times 50 tables (5000 tables) Information Schema Performance 0. 1. 2. 3. 4. Count All Schemas Schema aggregate size stats All Dynamic Table Info All Static Table Info Auto Increments Near Limit Count All Columns Count All Indexes MySQL 8.0 MySQL 5.7 Time in Seconds (Lower is better) Already faster at 7/10 queries in our test suite!
  • 38. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 30x Faster SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, ENGINE, ROW_FORMAT FROM information_schema.tables WHERE TABLE_SCHEMA LIKE 'db%'; 40 Test Performed with 100 schemas, each with 50 tables.
  • 39. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • Source code now documented with Doxygen • New Plugin Infrastructure • Expanded GIS Support • Expanded Query Hints Support • Improved Scan Query Performance • Improved BLOB Storage • Improved Memcached Interface • InnoDB Auto Increment Persists • Cost Model Improvements • Scalability Improvements • Atomicity in Privileges • Parser Refactoring • Improvements to Temporary Tables • C++11 and Toolchain Improvements • Replication Applier Thread Progress Reports • GTID_PURGED always settable • Undo tablespaces now dynamic • In memory storage engine • New! Improved Parallel Replication • New! SQL Grouping Function • New! Optimizer Trace detailed sort statistics • New! Smaller Package Downloads • New! JSON Aggregate, Pretty print functions • New! JSON performance improvements • New! Expanded Query Hints • New! Improved usability of cost constant configuration 42 All these features plus…
  • 40. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | HVALA NA PAŽNjI pitanja? Bogdan Kecman bogdan.kecman@oracle.com