MySQL 5.7: What s New in the Optimizer?
|
|
- Theodora Griffin
- 6 years ago
- Views:
Transcription
1 MySQL 5.7: What s New in the Optimizer? Manyi Lu, Olav Sandstaa MySQL Optimizer Team, Oracle September, 2015 Copyright 2015, 2014, Oracle and/or its its affiliates. All All rights reserved.
2 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle.
3 Parser Optimizer MySQL Optimizer MySQL Server SELECT a, b FROM t1, t2, t3 WHERE t1.a = t2.b AND t2.b = t3.c AND t2.d > 20 AND t2.d < 30; Cost based optimizations Cost Model Heuristics Range scan JOIN Ref access JOIN Table scan t1 t2 t3 Table/index info (data dictionary) Statistics (storage engines)
4 MySQL Optimizer: Design Principles Best out of the box performance Easy to use, minimum tuning needed When you need to understand: explain and trace Flexibility through optimizer hints, switches, and plugins Fast evolving
5 MySQL 5.7 Optimizer Improvements Generated columns and functional indexes New JSON datatype and functions Improved cost model New hint syntax and improved hint support Query rewrite plugin UNION ALL queries do not always use temporary tables Improved optimizations for queries with IN expressions Explain on a running query
6 Generated Columns
7 MySQL 5.7 Generated Columns Kodus to Andrey Zhakov for his contribution! CREATE TABLE order_lines (orderno integer, lineno integer, price decimal(10,2), qty integer, sum_price decimal(10,2) GENERATED ALWAYS AS (qty * price) STORED ); Column generated from the expression VIRTUAL: computed when read, not stored, indexable STORED: computed when inserted/updated, stored in SE, indexable Useful for: Functional index Materialized cache for complex conditions Simplify query expression
8 MySQL 5.7 Functional Index CREATE TABLE order_lines (orderno integer, lineno integer, price decimal(10,2), qty integer, sum_price decimal(10,2) GENERATED ALWAYS AS (qty * price) VIRTUAL); ALTER TABLE order_lines ADD INDEX idx (sum_price); Online index creation Composite index on a mix of ordinary, virtual and stored columns
9 Generated column: STORED vs VIRTUAL STORED Requires table rebuild at creation Updating table data at INSERT/UPDATE Fast retrieval VIRTUAL Metadata change only, instant Faster INSERT/UPDATE, no change to table Compute when read 9
10 Indexing Generated column: STORED vs VIRTUAL (InnoDB) STORED Primary & secondary index B-TREE, Full text search, R-TREE Duplication of data in base table and index Independent of SE Online operation VIRTUAL Secondary index only B-TREE only Less storage Requires SE support Online operation 10
11 JSON support
12 JSON Support Seemless integration of relational and schema-less data Leverage existing database infrastructure for new applications Provide a native JSON datatype Provide a set of built-in JSON functions
13 New JSON Datatype CREATE TABLE employees (data JSON); INSERT INTO employees VALUES ('{"id": 1, "name": "Jane"}'); INSERT INTO employees VALUES ('{"id": 2, "name": "Joe"}'); SELECT * FROM employees; data {"id": 1, "name": "Jane"} {"id": 2, "name": "Joe"} rows in set (0,00 sec) You can always store JSON data in TEXT or VARCHAR column, but native JSON datatype has many benefits: Validation on insert Efficient access
14 New functions to handle JSON data Info JSON_VALID() JSON_TYPE() JSON_KEYS() JSON_LENGTH() JSON_DEPTH() JSON_CONTAINS_PATH() JSON_CONTAINS() Modify JSON_REMOVE() JSON_ARRAY_APPEND() JSON_SET() JSON_INSERT() JSON_ARRAY_INSERT() JSON_REPLACE() Create JSON_MERGE() JSON_ARRAY() JSON_OBJECT() Get data JSON_EXTRACT() JSON_SEARCH() Helper JSON_QUOTE() JSON_UNQUOTE() 14
15 Inlining JSON PATH Expressions in SQL [[database.]table.]column-> $<path spec> (GA version) SELECT * FROM employees WHERE data-> $.name = Jane"; Is a short hand for SELECT * FROM employees WHERE JSON_EXTRACT(data, $.name ) = Jane ;
16 Indexing JSON data Use Functional Indexes, CREATE TABLE employees (data JSON); STORED and VIRTUAL types are supported ALTER TABLE employees ADD COLUMN name VARCHAR(30) AS (JSON_UNQUOTE(data-> $.name )) VIRTUAL, ADD INDEX name_idx (name); Functional index approach Use JSON_EXTRACT to specify field to be indexed 16
17 Using Real Life Data Via SF OpenData 206K JSON objects representing subdivision parcels. CREATE TABLE features ( id INTEGER NOT NULL auto_increment primary key, feature JSON NOT NULL ); Imported from + small tweaks 17
18 { } "type":"feature", "geometry":{ "type":"polygon", "coordinates":[ [ [ , ,0], [ , ,0], [ , ,0], [ , ,0], [ , ,0] ] ] }, "properties":{ "TO_ST":"0", "BLKLOT":" ", "STREET":"UNKNOWN", "FROM_ST":"0", "LOT_NUM":"001", "ST_TYPE":null, "ODD_EVEN":"E", "BLOCK_NUM":"0001", "MAPBLKLOT":" " } 18
19 Naive Performance Comparison Unindexed traversal of 206K documents # as JSON type SELECT DISTINCT feature->"$.type" as json_extract FROM features; json_extract "Feature" row in set (1.25 sec) # as TEXT type SELECT DISTINCT feature->"$.type" as json_extract FROM features; json_extract "Feature" row in set (12.85 sec) Explanation: Binary format of JSON type is very efficient at searching. Storing as TEXT performs over 10x worse at traversal. 19
20 Create Index From table scan on 206K documents to index scan on 206K materialized values ALTER TABLE features ADD feature_type VARCHAR(30) AS (feature->"$.type") VIRTUAL; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 ALTER TABLE features ADD INDEX (feature_type); Query OK, 0 rows affected (0.73 sec) Records: 0 Duplicates: 0 Warnings: 0 Meta data change only (FAST). Does not need to touch table. SELECT DISTINCT feature_type FROM features; feature_type "Feature" row in set (0.06 sec) Down from 1.25 sec to 0.06 sec Creates index online. Does not modify table rows. 20
21 JSON Path Search Provides a novice way to know the path. To retrieve via: [[database.]table.]column->"$<path spec>" (GA VERSION ONLY) SELECT JSON_SEARCH(feature,'one', 'MARKET') AS extract_path FROM features WHERE id = ; extract_path "$.properties.street" row in set (0.00 sec) SELECT feature->"$.properties.street" AS property_street FROM features WHERE id = ; property_street "MARKET" row in set (0.00 sec) 21
22 JSON Array Creation SELECT JSON_ARRAY(id, feature->"$.properties.street", feature->"$.type") AS json_array FROM features ORDER BY RAND() LIMIT 3; json_array [65298, "10TH", "Feature"] [122985, "08TH", "Feature"] [172884, "CURTIS", "Feature"] rows in set (2.66 sec) Evaluates a (possibly empty) list of values and returns a JSON array containing those values 22
23 Cost Model
24 Motivation for Changing the Cost Model Adopt to new hardware architectures SSD, larger memories, caches Allows storage engines to provide accurate and dynamic cost estimate Whether the data is in RAM, SSD, HDD? More maintainable cost model implementation Avoid hard coded constants Refactoring of existing cost model code Tunable/configurable Replace heuristics with cost based decisions
25 Cost Model: Main Focus in 5.7 Address the following pain points in current cost model: Inaccurate record estimation for JOIN Solution: condition filtering Hard-coded cost constants Solution: adjustable cost parameters Imprecise cardinality/records per key estimates from SE Solution: Integer value replaced by floating point Hard to obtain detailed cost numbers Solution: Added to JSON explain and MySQL WorkBench
26 Access Method MySQL 5.6: Record Estimates for JOIN Without condition filtering t 1 JOIN t 2 Prefix_rows_t 1 Number of records read from t 1 t 1 t 2 Total cost = cost (access method t 1 ) + Prefix_rows_t 1 * cost (access method t 2 ) Prefix_rows_t 1 is records read by t 1 Overestimation if where conditions apply!->suboptimial join order
27 Condition filter Access Method MySQL 5.7 Improved Record Estimates for JOIN Condition filter t 1 JOIN t 2 Number of records read from t 1 Prefix_rows_t 1 Records passing the table conditions on t 1 t 1 t 2 Prefix_rows_t 1 Takes into account the entire query condition More accurate record estimate -> improved JOIN order
28 MySQL 5.7 Improved Record Estimates for JOIN CREATE TABLE emp ( id INTEGER NOT NULL PRIMARY KEY, office_id INTEGER NOT NULL, first_name VARCHAR(20), hire_date DATE NOT NULL, KEY office (office_id) ) ENGINE=InnoDB; CREATE TABLE office ( id INTEGER NOT NULL PRIMARY KEY, officename VARCHAR(20) ) ENGINE=InnoDB; rows in the emp table 100 rows in the office table 100 rows with first_name= John AND hire_date BETWEEN AND
29 MySQL 5.7 Improved Record Estimates for JOIN SELECT office_name FROM office JOIN employee ON office.id = employee.office WHERE employee.name LIKE John AND hire_date BETWEEN AND ; Explain for 5.6: Total Cost = cost(scan office) * cost(ref_access emp) Table Type Possible keys Key Ref Rows Filtered Extra office ALL PRIMARY NULL NULL NULL employee ref office office office.id Using where Explain for 5.7: Total Cost = cost(scan emp) *1.23% * cost(eq_ref_access office) Table Type Possible keys Key Ref Rows Filtered Extra employee ALL NULL NULL NULL NULL office eq_ref PRIMARY PRIMARY employee.office Using where JOIN ORDER HAS CHANGED!
30 HINT
31 MySQL 5.7: Improved HINTs Introduced new hint syntax /*+...*/ Flexibility over optimizer switch, effect individual statement only Hints within one statement take preceduence over optimizer switch Hints apply at different scope levels: global, query block, table, index Extended hint support BKA, BNL, MRR, ICP, SEMIJOIN, SUBQUERY,MAX_EXECUTION_TIME++ Disabling prevents optimizer to use it Enabling means optimizer is free to use it, but is not forced to use it Will gradually replace the old hint syntax in upcoming releases
32 MySQL 5.7: Hint Example: MAX_EXECUTION_TIME SELECT /*+ MAX_EXECUTION_TIME(1) */ * FROM t1 a, t1 b, t1 c, t1 d, t1 e LIMIT 1; ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM t1 a, t1 b, t1 c, t1 d, t1 e LIMIT 1; a b a b a b a b a b row in set (0,00 sec)
33 MySQL 5.7: Hint Example: SEMIJOIN EXPLAIN SELECT * FROM t2 WHERE t2.a IN (SELECT a FROM t3); No hint, optimizer chooses semi-join algorithm loosescan id Select_type Table Type Possible_keys Key Key_len Ref Rows Extra 1 simple t3 index a a 4 null 3 Using where; LooseScan 1 simple t2 ref a a 4 test.t3.a 1 Using index EXPLAIN SELECT * FROM t2 WHERE t2.a IN (SELECT /*+ NO_SEMIJOIN() */ a FROM t3); Semi-join disabled with hint, subquery is executed for each row of outer table id Select_type Table Type Possible_keys Key Key_len Ref Rows Extra 1 primary t2 index null a 4 null 4 Using where; Using index 2 dependent subquery t3 Index_ subquery a a 4 func 1 Using index
34 MySQL 5.7: Hint Example: SEMIJOIN EXPLAIN SELECT /*+ MATERIALIZATION) */ * FROM t2 WHERE t2.a IN (SELECT /*+ QB_NAME(subq) */ a FROM t3); Hint on a particular algorithm, in this case semi-join materialization id Select_type Table Type Possible_ke ys Key Key_len Ref Rows Extra 1 simple t2 index a a 4 null 4 Using where;using index 1 simple <subquery2> eq_ref <auto_key> <auto_key> 4 test.t2.a 1 null 2 materialized t3 index a a 4 null 3 Using index 3 rows in set, 1 warning (0.01 sec)
35 Query Rewrite Plugin
36 MySQL 5.7: Why Query Rewrite Plugin? Problem Optimizer choses a suboptimal plan Users can change the query plan by adding hints or rewrite the query However, database application code cannot be changed Solution: query rewrite plugin!
37 MySQL 5.7: Query Rewrite Plugin New pre and post parse query rewrite APIs Users can write their own plug-ins Provides a post-parse query plugin Rewrite problematic queries without the need to make application changes Add hints Modify join order Rewrite rules are defined in a table Improve problematic queries from ORMs, third party apps, etc
38 MySQL 5.7 How Rewrites Happen? Pattern is: SELECT * FROM t1 JOIN t2 ON t1.keycol = t2.keycol WHERE col1 =? AND col2 =? Replacement is: SELECT a, b, c FROM t1 STRAIGHT_JOIN t2 FORCE INDEX (col1) ON t1.keycol = t2.keycol WHERE col1 =? AND col2 =? For query SELECT * FROM t1 JOIN t2 ON t1.keycol = t2.keycol WHERE col1 = 42 AND col2 = 2 Replace parameter markers in Replacement with actual literals: SELECT a, b, c FROM t1 STRAIGHT_JOIN t2 FORCE INDEX (col1) ON t1.keycol = t2.keycol WHERE col1 = 42 AND col2 = 2
39 MySQL 5.7Query Rewrite Plugin cont. query_rewrite.rewrite_rules table: Pattern Pattern_ database Replacement Enabl ed Message SELECT name, department_name FROM employee JOIN department USING ( department_id ) WHERE salary >? employe es SELECT name, department_name FROM employee STRAIGHT_JOIN department USING ( department_id ) WHERE salary >? Y NULL SELECT name, department_name FROXM employee JOIN department USING ( department_id ) WHERE salary >? employe es SELECT name, department_name FROM employee STRAIGHT JOIN department USING ( department_id ) WHERE salary >? N Parse error in pattern: near at line 1
40 MySQL 5.7 Query Rewrite Plugin: Performance Impact What is the Cost of Rewriting queries? Designed for rewriting problematic queries only! ~ Zero cost for queries not to be rewritten Statement digest computed for performance schema anyway Cost of queries to be rewritten is insignificant compared to performance gain Cost of generating query + reparsing max ~5% performance overhead Performance gain potentially x times
41 User Requested Performance Improvements
42 MySQL 5.7: Avoid Creating Temporary Table for UNION ALL SELECT * FROM table_a UNION ALL SELECT * FROM table_b; 5.6: Always materialize results of UNION ALL in temporary tables 5.7: Do not materialize in temporary tables unless used for sorting, rows are sent directly to client 5.7: Client will receive the first row faster, no need to wait until the last query block is finished 5.7: Less memory and disk consumption
43 MySQL 5.7: Optimizations for IN Expressions CREATE TABLE t1 (a INT, b INT, c INT, KEY x(a, b)); SELECT a, b FROM t1 WHERE (a, b) IN ((0, 0), (1, 1)); 5.6: Certain queries with IN predicates can t use index scans or range scans even though all the columns in the query are indexed. 5.6: Range optimizer ignores lists of rows 5.6: Needs to rewrite to de-normalized form SELECT a, b FROM t1 WHERE ( a = 0 AND b = 0 ) OR ( a = 1 AND b = 1 ) 5.7: IN queries with row value expressions executed using range scans. 5.7: Explain output: Index/table scans change to range scans
44 MySQL 5.7: Optimizations for IN Expressions SELECT a, b FROM t1 WHERE (a, b) IN ((0, 0), (1, 1)); A table has rows, 2 match the where condition MySQL 5.6: **************1. row ***************** select_type: SIMPLE table: t1 type: index key: x key_len: 10 ref: NULL rows: Extra: Using where; Using index MySQL 5.7: *************1. row ***************** select_type: SIMPLE table: t1 type: range key: x key_len: 10 ref: NULL rows: 2 Extra: Using where; Using index
45 EXPLAIN
46 MySQL 5.7 Explain on a Running Query EXPLAIN [FORMAT=(JSON TRADITIONAL)] FOR CONNECTION <id>; Shows query plan on connection <id> Useful for diagnostic on long running queries Plan isn t available when query plan is under creation Applicable to SELECT/INSERT/DELETE/UPDATE
47 What is on Our Roadmap? Improve prepared statement support Add histogram Support parallel queries Common table expression(with RECURSIVE) Windowing functions
48
MySQL JSON. Morgan Tocker MySQL Product Manager. Copyright 2015 Oracle and/or its affiliates. All rights reserved.
MySQL 5.7 + JSON Morgan Tocker MySQL Product Manager Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not
More informationNoSQL and SQL: The Best of Both Worlds
NoSQL and SQL: The Best of Both Worlds Mario Beck MySQL Presales Manager EMEA Mablomy.blogspot.de 5 th November, 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement
More informationCombining SQL and NoSQL with MySQL
Combining SQL and NoSQL with MySQL Manyi Lu Director MySQL Optimizer Team, Oracle April, 2018 Copyright 2016, 2014, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The following
More informationModern Development With MySQL
Modern Development With MySQL Nicolas De Rico nicolas.de.rico@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes
More informationNoSQL + SQL = MySQL. Nicolas De Rico Principal Solutions Architect
NoSQL + SQL = MySQL Nicolas De Rico Principal Solutions Architect nicolas.de.rico@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for
More informationMySQL 8.0 What s New in the Optimizer
MySQL 8.0 What s New in the Optimizer Manyi Lu Director MySQL Optimizer & GIS Team, Oracle October 2016 Copyright Copyright 2 015, 2016,Oracle Oracle and/or and/or its its affiliates. affiliates. All All
More informationWhat's New in MySQL 5.7?
What's New in MySQL 5.7? Norvald H. Ryeng Software Engineer norvald.ryeng@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information
More informationWhen and How to Take Advantage of New Optimizer Features in MySQL 5.6. Øystein Grøvlen Senior Principal Software Engineer, MySQL Oracle
When and How to Take Advantage of New Optimizer Features in MySQL 5.6 Øystein Grøvlen Senior Principal Software Engineer, MySQL Oracle Program Agenda Improvements for disk-bound queries Subquery improvements
More informationFlexible Data Modeling in MariaDB
Flexible Data Modeling in MariaDB WHITE PAPER Part 2 JSON Table of Contents Introduction - Benefits and Limitations - Benefit - Limitations - Use Cases JSON Functions - Definitions - Create - Read - Indexes
More informationCovering indexes. Stéphane Combaudon - SQLI
Covering indexes Stéphane Combaudon - SQLI Indexing basics Data structure intended to speed up SELECTs Similar to an index in a book Overhead for every write Usually negligeable / speed up for SELECT Possibility
More informationPart 1: IoT demo Part 2: MySQL, JSON and Flexible storage
Part 1: IoT demo Part 2: MySQL, JSON and Flexible storage $ node particle_mysql_all.js Starting... INSERT INTO cloud_data_json (name, data) values ('particle', '{\"data\":\"null\",\"ttl\":60,\"published_at\":\"2017-09-28t19:40:49.869z\",\"coreid\":\"1f0039000947343337373738
More informationMARIADB & JSON: FLEXIBLE DATA MODELING
MARIADB & JSON: FLEXIBLE DATA MODELING FEBRUARY 2019 MARIADB PLATFORM Transactions and Analytics, UNITED MariaDB Platform is an enterprise open source database for transactional, analytical or hybrid transactional/analytical
More informationIndexes - What You Need to Know
Indexes - What You Need to Know http://www.percona.com/training/ 2011-2017 Percona, Inc. 1 / 53 Indexes - Need to Know QUERY PLANNING 2011-2017 Percona, Inc. 2 / 53 About This Chapter The number one goal
More information<Insert Picture Here> Upcoming Changes in MySQL 5.7 Morgan Tocker, MySQL Community Manager
Upcoming Changes in MySQL 5.7 Morgan Tocker, MySQL Community Manager http://www.tocker.ca/ Safe Harbor Statement The following is intended to outline our general product direction.
More informationMySQL Next An overview of the MySQL 8 Beta
MySQL Next An overview of the MySQL 8 Beta Svan Lankes, Cocus AG Carsten Thalheimer, Oracle MySQL Agenda Timelines so far Features Performance MySQL vs. MariaDB vs. Percona Where to get COCUS AG 21.11.2017
More informationOptimizer Standof. MySQL 5.6 vs MariaDB 5.5. Peter Zaitsev, Ovais Tariq Percona Inc April 18, 2012
Optimizer Standof MySQL 5.6 vs MariaDB 5.5 Peter Zaitsev, Ovais Tariq Percona Inc April 18, 2012 Thank you Ovais Tariq Ovais Did a lot of heavy lifing for this presentation He could not come to talk together
More informationQuery Optimization Percona, Inc. 1 / 74
Query Optimization http://www.percona.com/training/ 2011-2017 Percona, Inc. 1 / 74 Table of Contents 1. Query Planning 3. Composite Indexes 2. Explaining the EXPLAIN 4. Kitchen Sink 2011-2017 Percona,
More informationHistogram Support in MySQL 8.0
Histogram Support in MySQL 8.0 Øystein Grøvlen Senior Principal Software Engineer MySQL Optimizer Team, Oracle February 2018 Program Agenda 1 2 3 4 5 Motivating example Quick start guide How are histograms
More informationWhat s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering. Copyright 2015, Oracle and/or its affiliates. All rights reserved.
What s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes
More informationMySQL Query Tuning 101. Sveta Smirnova, Alexander Rubin April, 16, 2015
MySQL Query Tuning 101 Sveta Smirnova, Alexander Rubin April, 16, 2015 Agenda 2 Introduction: where to find slow queries Indexes: why and how do they work All about EXPLAIN More tools Where to find more
More informationSafe Harbor Statement
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
More informationUsing the MySQL Document Store
Using the MySQL Document Store Alfredo Kojima, Sr. Software Dev. Manager, MySQL Mike Zinner, Sr. Software Dev. Director, MySQL Safe Harbor Statement The following is intended to outline our general product
More informationOracle 1Z MySQL 5.6 Developer.
Oracle 1Z0-882 MySQL 5.6 Developer http://killexams.com/exam-detail/1z0-882 SELECT... WHERE DATEDIFF (dateline, 2013-01-01 ) = 0 C. Use numeric equivalents for comparing the two dates: SELECT...WHERE MOD(UNIX_TIMESTAMP
More informationMySQL High available by design
MySQL High available by design Carsten Thalheimer Sales Consultant MySQL GBU EMEA (Carsten.Thalheimer@Oracle.com) Safe Harbor Statement The following is intended to outline our general product direction.
More informationWriting High Performance SQL Statements. Tim Sharp July 14, 2014
Writing High Performance SQL Statements Tim Sharp July 14, 2014 Introduction Tim Sharp Technical Account Manager Percona since 2013 16 years working with Databases Optimum SQL Performance Schema Indices
More informationAdvanced MySQL Query Tuning
Advanced MySQL Query Tuning Alexander Rubin August 6, 2014 About Me My name is Alexander Rubin Working with MySQL for over 10 years Started at MySQL AB, then Sun Microsystems, then Oracle (MySQL Consulting)
More informationHow to Use JSON in MySQL Wrong
How to Use JSON in MySQL Wrong Bill Karwin, Square Inc. October, 2018 1 Me Database Developer at Square Inc. MySQL Quality Contributor Author of SQL Antipatterns: Avoiding the Pitfalls of Database Programming
More informationPractical JSON in MySQL 5.7 and Beyond
Practical JSON in MySQL 5.7 and Beyond Ike Walker GitHub Percona Live April 27, 2017 " How people build software What this talk is about How people build software 2 What this talk is about Using JSON in
More informationOKC MySQL Users Group
OKC MySQL Users Group OKC MySQL Discuss topics about MySQL and related open source RDBMS Discuss complementary topics (big data, NoSQL, etc) Help to grow the local ecosystem through meetups and events
More informationMySQL 8.0: Atomic DDLs Implementation and Impact
MySQL 8.0: Atomic DDLs Implementation and Impact Ståle Deraas, Senior Development Manager Oracle, MySQL 26 Sept 2017 Copyright 2017, Oracle and/or its its affiliates. All All rights reserved. Safe Harbor
More informationOracle Exam 1z0-882 Oracle Certified Professional, MySQL 5.6 Developer Version: 7.0 [ Total Questions: 100 ]
s@lm@n Oracle Exam 1z0-882 Oracle Certified Professional, MySQL 5.6 Developer Version: 7.0 [ Total Questions: 100 ] Oracle 1z0-882 : Practice Test Question No : 1 Consider the statements: Mysql> drop function
More information1Z MySQL 5 Database Administrator Certified Professional Exam, Part II Exam.
Oracle 1Z0-874 MySQL 5 Database Administrator Certified Professional Exam, Part II Exam TYPE: DEMO http://www.examskey.com/1z0-874.html Examskey Oracle 1Z0-874 exam demo product is here for you to test
More informationSQL Gone Wild: Taming Bad SQL the Easy Way (or the Hard Way) Sergey Koltakov Product Manager, Database Manageability
SQL Gone Wild: Taming Bad SQL the Easy Way (or the Hard Way) Sergey Koltakov Product Manager, Database Manageability Oracle Enterprise Manager Top-Down, Integrated Application Management Complete, Open,
More informationExplaining the MySQL EXPLAIN
Explaining the MySQL EXPLAIN Ronald Bradford http://ronaldbradford.com OTN South America Tour July 2011 Agenda EXPLAIN syntax options How to read QEP QEP examples MySQL optimizer limitations PURPOSE EXPLAIN
More informationWhat is MariaDB 5.5? w: e: Daniel Bartholomew Oct 2012
What is MariaDB 5.5? Daniel Bartholomew Oct 2012 Abstract MariaDB 5.5 is the current stable, generally available (GA) release of MariaDB. It builds upon and includes several major new features and changes
More informationMySQL 5.7 News. Abel Flórez Technical Account Manager Copyright 2016 Oracle and/or its affiliates. All rights reserved.
MySQL 5.7 News Abel Flórez Technical Account Manager abel.florez@oracle.com Copyright 2016 Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The following is intended to outline
More informationWhat Is New in Optmizer and Executor?
MySQL 8.0: What Is New in Optmizer and Executor? Norvald H. Ryeng Sofware Development Senior Manager MySQL Optmizer Team October, 2018 Safe Harbor Statement The following is intended to outline our general
More informationAdvanced query optimization techniques on large queries. Peter Boros Percona Webinar
Advanced query optimization techniques on large queries Peter Boros Percona Webinar Agenda Showing the title slide Going through this agenda Prerequisites Case study #1 Case study #2 Case study #3 Case
More informationTroubleshooting Slow Queries. Sveta Smirnova Principal Support Engineer April, 28, 2016
Troubleshooting Slow Queries Sveta Smirnova Principal Support Engineer April, 28, 2016 Table of Contents Before we start What affects query execution EXPLAIN: how to find out how optimizer works Data matters:
More informationPractical MySQL indexing guidelines
Practical MySQL indexing guidelines Percona Live October 24th-25th, 2011 London, UK Stéphane Combaudon stephane.combaudon@dailymotion.com Agenda Introduction Bad indexes & performance drops Guidelines
More informationState of the Dolphin Developing new Apps in MySQL 8
State of the Dolphin Developing new Apps in MySQL 8 Highlights of MySQL 8.0 technology updates Mark Swarbrick MySQL Principle Presales Consultant Jill Anolik MySQL Global Business Unit Israel Copyright
More informationOptimizing Queries with EXPLAIN
Optimizing Queries with EXPLAIN Sheeri Cabral Senior Database Administrator Twitter: @sheeri What is EXPLAIN? SQL Extension Just put it at the beginning of your statement Can also use DESC or DESCRIBE
More informationCopyright 2016 Ramez Elmasri and Shamkant B. Navathe
CHAPTER 19 Query Optimization Introduction Query optimization Conducted by a query optimizer in a DBMS Goal: select best available strategy for executing query Based on information available Most RDBMSs
More informationState of MariaDB. Igor Babaev Notice: MySQL is a registered trademark of Sun Microsystems, Inc.
State of MariaDB Igor Babaev igor@askmonty.org New features in MariaDB 5.2 New engines: OQGRAPH, SphinxSE Virtual columns Extended User Statistics Segmented MyISAM key cache Pluggable Authentication Storage-engine-specific
More informationMastering the art of indexing
Mastering the art of indexing Yoshinori Matsunobu Lead of MySQL Professional Services APAC Sun Microsystems Yoshinori.Matsunobu@sun.com 1 Table of contents Speeding up Selects B+TREE index structure Index
More informationLecture 19 Query Processing Part 1
CMSC 461, Database Management Systems Spring 2018 Lecture 19 Query Processing Part 1 These slides are based on Database System Concepts 6 th edition book (whereas some quotes and figures are used from
More informationSQL QUERY EVALUATION. CS121: Relational Databases Fall 2017 Lecture 12
SQL QUERY EVALUATION CS121: Relational Databases Fall 2017 Lecture 12 Query Evaluation 2 Last time: Began looking at database implementation details How data is stored and accessed by the database Using
More informationAdvanced MySQL Query Tuning
Advanced MySQL Query Tuning Alexander Rubin July 21, 2013 About Me My name is Alexander Rubin Working with MySQL for over 10 years Started at MySQL AB, then Sun Microsystems, then Oracle (MySQL Consulting)
More informationIntroduction to the MySQL Document Store Alfredo Kojima, Rui Quelhas, Mike Zinner MySQL Middleware and Clients Team October 22, 2018
Introduction to the MySQL Document Store Alfredo Kojima, Rui Quelhas, Mike Zinner MySQL Middleware and Clients Team October 22, 2018 Safe Harbor Statement The following is intended to outline our general
More informationAssignment 6: SQL III Solution
Data Modelling and Databases Exercise dates: April 12/April 13, 2018 Ce Zhang, Gustavo Alonso Last update: April 16, 2018 Spring Semester 2018 Head TA: Ingo Müller Assignment 6: SQL III Solution This assignment
More informationTired of MySQL Making You Wait? Alexander Rubin, Principal Consultant, Percona Janis Griffin, Database Evangelist, SolarWinds
Tired of MySQL Making You Wait? Alexander Rubin, Principal Consultant, Percona Janis Griffin, Database Evangelist, SolarWinds Who Am I? Senior DBA / Performance Evangelist for Solarwinds Janis.Griffin@solarwinds.com
More informationInnoDB: What s new in 8.0
InnoDB: What s new in 8.0 Sunny Bains Director Software Development Copyright 2017, Oracle and/or its its affiliates. All All rights reserved. Safe Harbor Statement The following is intended to outline
More informationOracle APEX 18.1 New Features
Oracle APEX 18.1 New Features May, 2018 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
More information3 / 120. MySQL 8.0. Frédéric Descamps - MySQL Community Manager - Oracle
1 / 120 2 / 120 3 / 120 MySQL 8.0 a Document Store with all the benefits of a transactional RDBMS Frédéric Descamps - MySQL Community Manager - Oracle 4 / 120 Save the date! 5 / 120 Safe Harbor Statement
More information<Insert Picture Here> Boosting performance with MySQL partitions
Boosting performance with MySQL partitions Giuseppe Maxia MySQL Community Team Lead at Oracle 1 about me -Giuseppe Maxia a.k.a. The Data Charmer MySQL Community Team Lead Long time
More informationOracle 1Z MySQL 5.6 Database Administrator. Download Full Version :
Oracle 1Z0-883 MySQL 5.6 Database Administrator Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-883 D. The mysqld binary was not compiled with SSL support. E. The server s SSL certificate
More informationMTA Database Administrator Fundamentals Course
MTA Database Administrator Fundamentals Course Session 1 Section A: Database Tables Tables Representing Data with Tables SQL Server Management Studio Section B: Database Relationships Flat File Databases
More informationCreating and Working with JSON in Oracle Database
Creating and Working with JSON in Oracle Database Dan McGhan Oracle Developer Advocate JavaScript & HTML5 January, 2016 Safe Harbor Statement The following is intended to outline our general product direction.
More informationThe MariaDB/MySQL Query Executor In-depth. Presented by: Timour Katchaounov Optimizer team: Igor Babaev, Sergey Petrunia, Timour Katchaounov
The MariaDB/MySQL Query Executor In-depth Presented by: Timour Katchaounov Optimizer team: Igor Babaev, Sergey Petrunia, Timour Katchaounov Outline What's IN Query engine architecture Execution model Representation
More informationMySQL vs MariaDB. Where are we now?
MySQL vs MariaDB Where are we now? Hey! A BRIEF HISTORY OF THE UNIVERSE (of MySQL and MariaDB) Herman Hollerith Unireg Begins Essentially, the origin of what we know MySQL as today, establishing its code
More informationitexamdump 최고이자최신인 IT 인증시험덤프 일년무료업데이트서비스제공
itexamdump 최고이자최신인 IT 인증시험덤프 http://www.itexamdump.com 일년무료업데이트서비스제공 Exam : 1z1-882 Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-882
More information#MySQL #oow16. MySQL Server 8.0. Geir Høydalsvik
#MySQL #oow16 MySQL Server 8.0 Geir Høydalsvik Copyright Copyright 2 2016, 016,Oracle Oracle aand/or nd/or its its aaffiliates. ffiliates. AAll ll rights rights reserved. reserved. Safe Harbor Statement
More informationCS122 Lecture 4 Winter Term,
CS122 Lecture 4 Winter Term, 2014-2015 2 SQL Query Transla.on Last time, introduced query evaluation pipeline SQL query SQL parser abstract syntax tree SQL translator relational algebra plan query plan
More information<Insert Picture Here> Looking at Performance - What s new in MySQL Workbench 6.2
Looking at Performance - What s new in MySQL Workbench 6.2 Mario Beck MySQL Sales Consulting Manager EMEA The following is intended to outline our general product direction. It is
More informationMySQL Document Store. How to replace a NoSQL database by MySQL without effort but with a lot of gains?
1 / 71 2 / 71 3 / 71 MySQL Document Store How to replace a NoSQL database by MySQL without effort but with a lot of gains? Percona University, Ghent, Belgium June 2017 Frédéric Descamps - MySQL Community
More informationIntroduction to Query Processing and Query Optimization Techniques. Copyright 2011 Ramez Elmasri and Shamkant Navathe
Introduction to Query Processing and Query Optimization Techniques Outline Translating SQL Queries into Relational Algebra Algorithms for External Sorting Algorithms for SELECT and JOIN Operations Algorithms
More informationSQL Data Definition Language: Create and Change the Database Ray Lockwood
Introductory SQL SQL Data Definition Language: Create and Change the Database Pg 1 SQL Data Definition Language: Create and Change the Database Ray Lockwood Points: DDL statements create and alter the
More informationExam Questions 1z0-882
Exam Questions 1z0-882 Oracle Certified Professional, MySQL 5.6 Developer https://www.2passeasy.com/dumps/1z0-882/ 1.Which statement describes the process of normalizing databases? A. All text is trimmed
More informationMySQL Cluster An Introduction
MySQL Cluster An Introduction Geert Vanderkelen O Reilly MySQL Conference & Expo 2010 Apr. 13 2010 In this presentation we'll introduce you to MySQL Cluster. We ll go through the MySQL server, the storage
More informationMySQL for Developers with Developer Techniques Accelerated
Oracle University Contact Us: 02 696 8000 MySQL for Developers with Developer Techniques Accelerated Duration: 5 Days What you will learn This MySQL for Developers with Developer Techniques Accelerated
More informationCreating and Managing Tables Schedule: Timing Topic
9 Creating and Managing Tables Schedule: Timing Topic 30 minutes Lecture 20 minutes Practice 50 minutes Total Objectives After completing this lesson, you should be able to do the following: Describe the
More informationCSCU9Q5 Introduction to MySQL. Data Definition & Manipulation (Over ~two Lectures)
CSCU9Q5 Introduction to MySQL Data Definition & Manipulation (Over ~two Lectures) 1 Contents Introduction to MySQL Create a table Specify keys and relations Empty and Drop tables 2 Introduction SQL is
More informationPostgreSQL to MySQL A DBA's Perspective. Patrick
PostgreSQL to MySQL A DBA's Perspective Patrick King @mr_mustash Yelp s Mission Connecting people with great local businesses. My Database Experience Started using Postgres 7 years ago Postgres 8.4 (released
More informationMySQL Database Administrator Training NIIT, Gurgaon India 31 August-10 September 2015
MySQL Database Administrator Training Day 1: AGENDA Introduction to MySQL MySQL Overview MySQL Database Server Editions MySQL Products MySQL Services and Support MySQL Resources Example Databases MySQL
More informationSun Certified MySQL 5.0 Developer Part II
310-813 Sun Certified MySQL 5.0 Developer Part II Version 13.3 QUESTION NO: 1 When executing multi-row operations, what should be the first thing you look for to see if anything unexpected happened? A.
More informationEverything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group Replication Luís Soares (luis.soares@oracle.com) Principal Software Engineer, MySQL Replication Lead Copyright 2017, Oracle and/or its affiliates. All rights
More informationSQL: Data De ni on. B0B36DBS, BD6B36DBS: Database Systems. h p://www.ksi.m.cuni.cz/~svoboda/courses/172-b0b36dbs/ Lecture 3
B0B36DBS, BD6B36DBS: Database Systems h p://www.ksi.m.cuni.cz/~svoboda/courses/172-b0b36dbs/ Lecture 3 SQL: Data De ni on Mar n Svoboda mar n.svoboda@fel.cvut.cz 13. 3. 2018 Czech Technical University
More informationQuery Optimization, part 2: query plans in practice
Query Optimization, part 2: query plans in practice CS634 Lecture 13 Slides by E. O Neil based on Database Management Systems 3 rd ed, Ramakrishnan and Gehrke Working with the Oracle query optimizer First
More informationQuery Processing and Query Optimization. Prof Monika Shah
Query Processing and Query Optimization Query Processing SQL Query Is in Library Cache? System catalog (Dict / Dict cache) Scan and verify relations Parse into parse tree (relational Calculus) View definitions
More informationCopyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
1 MySQL : 5.6 the Next Generation Lynn Ferrante Principal Consultant, Technical Sales Engineering Northern California Oracle Users Group November 2012 2 Safe Harbor Statement The
More informationQuery Processing & Optimization
Query Processing & Optimization 1 Roadmap of This Lecture Overview of query processing Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Introduction
More informationWhy we re excited about MySQL 8
Why we re excited about MySQL 8 Practical Look for Devs and Ops Peter Zaitsev, CEO, Percona February 4nd, 2018 FOSDEM 1 In the Presentation Practical view on MySQL 8 Exciting things for Devs Exciting things
More informationMySQL 5.0 Certification Study Guide
MySQL 5.0 Certification Study Guide Paul DuBois, Stefan Hinz, and Carsten Pedersen MySQC Press 800 East 96th Street, Indianapolis, Indiana 46240 USA Table of Contents Introduction 1 About This Book 1 Sample
More informationOracle Database 11g: SQL Tuning Workshop
Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Oracle Database 11g: SQL Tuning Workshop Duration: 3 Days What you will learn This Oracle Database 11g: SQL Tuning Workshop Release
More informationYourSQL: A High-Performance DBMS Leveraging In-Storage Computing
YourSQL: A High-Performance DBMS Leveraging In-Storage Computing Insoon Jo, D. Bae, A.S.Yoon, J. Kang, S.Cho, DG Lee, J.Jeong VLDB, 2016 Payas Rajan UC - Riverside 10.13.2016 1 Overview SQL Optimizations
More informationInnoDB: Status, Architecture, and Latest Enhancements
InnoDB: Status, Architecture, and Latest Enhancements O'Reilly MySQL Conference, April 14, 2011 Inaam Rana, Oracle John Russell, Oracle Bios Inaam Rana (InnoDB / MySQL / Oracle) Crash recovery speedup
More informationMeet the Sergei Golubchik MariaDB Corporation
Meet the 10.2 Sergei Golubchik MariaDB Corporation k 10.2 Facts About a year in active development Currently at 10.2.2 beta Plans Gamma soon GA by the end of the year 10.2 Analytical queries Removing historical
More informationMobile MOUSe MTA DATABASE ADMINISTRATOR FUNDAMENTALS ONLINE COURSE OUTLINE
Mobile MOUSe MTA DATABASE ADMINISTRATOR FUNDAMENTALS ONLINE COURSE OUTLINE COURSE TITLE MTA DATABASE ADMINISTRATOR FUNDAMENTALS COURSE DURATION 10 Hour(s) of Self-Paced Interactive Training COURSE OVERVIEW
More informationOracle 1Z0-882 Exam. Volume: 100 Questions. Question No: 1 Consider the table structure shown by this output: Mysql> desc city:
Volume: 100 Questions Question No: 1 Consider the table structure shown by this output: Mysql> desc city: 5 rows in set (0.00 sec) You execute this statement: SELECT -,-, city. * FROM city LIMIT 1 What
More informationPartitioning. Sheeri K. Cabral Database Administrator The Pythian Group, January 12, 2009
Partitioning Sheeri K. Cabral Database Administrator The Pythian Group, www.pythian.com cabral@pythian.com January 12, 2009 Partitioning Why What How How to Partition CREATE TABLE tblname ( fld FLDTYPE...
More informationHKTA TANG HIN MEMORIAL SECONDARY SCHOOL SECONDARY 3 COMPUTER LITERACY. Name: ( ) Class: Date: Databases and Microsoft Access
Databases and Microsoft Access Introduction to Databases A well-designed database enables huge data storage and efficient data retrieval. Term Database Table Record Field Primary key Index Meaning A organized
More informationPhysical Database Design and Tuning. Chapter 20
Physical Database Design and Tuning Chapter 20 Introduction We will be talking at length about database design Conceptual Schema: info to capture, tables, columns, views, etc. Physical Schema: indexes,
More informationAssignment 6: SQL III
Data Modelling and Databases Exercise dates: April 12/April 13, 2018 Ce Zhang, Gustavo Alonso Last update: April 16, 2018 Spring Semester 2018 Head TA: Ingo Müller Assignment 6: SQL III This assignment
More informationQuery Evaluation! References:! q [RG-3ed] Chapter 12, 13, 14, 15! q [SKS-6ed] Chapter 12, 13!
Query Evaluation! References:! q [RG-3ed] Chapter 12, 13, 14, 15! q [SKS-6ed] Chapter 12, 13! q Overview! q Optimization! q Measures of Query Cost! Query Evaluation! q Sorting! q Join Operation! q Other
More informationTables From Existing Tables
Creating Tables From Existing Tables After completing this module, you will be able to: Create a clone of an existing table. Create a new table from many tables using a SQL SELECT. Define your own table
More informationMySQL for Developers. Duration: 5 Days
Oracle University Contact Us: 0800 891 6502 MySQL for Developers Duration: 5 Days What you will learn This MySQL for Developers training teaches developers how to develop console and web applications using
More informationIntroduction to MySQL NDB Cluster. Yves Trudeau Ph. D. Percona Live DC/January 2012
Introduction to MySQL NDB Cluster Yves Trudeau Ph. D. Percona Live DC/January 2012 Agenda What is NDB Cluster? How MySQL uses NDB Cluster Good use cases Bad use cases Example of tuning What is NDB cluster?
More information<Insert Picture Here> MySQL Cluster What are we working on
MySQL Cluster What are we working on Mario Beck Principal Consultant The following is intended to outline our general product direction. It is intended for information purposes only,
More informationPerformance Optimization for Informatica Data Services ( Hotfix 3)
Performance Optimization for Informatica Data Services (9.5.0-9.6.1 Hotfix 3) 1993-2015 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic,
More informationSQL Best Practices. Chandra Sekhar
SQL Best Practices Chandra Sekhar Agenda Application failing with "String too large error" My application is not running fast enough Push your application logic to User Defined Functions Use Scalar Subquery
More information