MySQL an be used as a NoSQL JSON Document Store as well as its well known ability as a SQL Relational Data Base. This presentation covers why you would want to use NoSQL and JSON and how to combine it what the relational data you already have
MySQL Without the SQL - Oh My! August 2nd presentation at Mid Atlantic Develo...Dave Stokes
MySQL Document Store allows you to use MySQL as a JSON Document Databases without needing to set up relational tables, normalize data, or use Structured Query Language.
Discover the Power of the NoSQL + SQL with MySQLDave Stokes
Slides from the May th 2020 Webinar on the MySQL Document Store -- please see video examples at https://github.com/davidmstokes/tutorials
MySQL Document Store -- SCaLE 17x PresentationDave Stokes
The MySQL Document store is a way to use MySQL as a NoSQL JSON Document Store so that you do not need to make queries with SQL, avoid having to set up relational tables before using the data, or need to wait for a DBA to set up tab;es
MySQL Without The SQL -- Oh My! PHP Detroit July 2018Dave Stokes
MySQL 8 can be used as a NoSQL JSON document store and with the new X DEVapi you can stop embedding SQL strings in your PHP code. Plus you can also access and JOIN SQL tables
Validating JSON -- Percona Live 2021 presentationDave Stokes
JSON is a free form data exchange format which can cause problems when combined with a strictly typed relational database. Thanks to the folks at https://json-schema.org and the MySQL engineers at Oracle we can no specify required fields, type checks, and range checks.
You may all know that JSON is a subset of JavaScript, but… Did you know that HTML5 implements NoSQL databases? Did you know that JavaScript was recommended for REST by HTTP co-creator Roy T. Fielding himself? Did you know that map & reduce are part of the native JavaScript API? Did you know that most NoSQL solutions integrate a JavaScript engine? CouchDB, MongoDB, WakandaDB, ArangoDB, OrientDB, Riak…. And when they don’t, they have a shell client which does. The story of NoSQL and JavaScript goes beyond your expectations and opens more opportunities than you might imagine… What better match could you find than a flexible and dynamic language for schemaless databases? Isn’t an event-driven language what you’ve been waiting for to manage consistency? When NoSQL doesn’t come to JavaScript, JavaScript comes to NoSQL. And does it very well.
Redis Use Patterns (DevconTLV June 2014)Itamar Haber
An introduction to Redis for the SQL practitioner, covering data types and common use cases.
The video of this session can be found at: https://www.youtube.com/watch?v=8Unaug_vmFI
Noah Davis & Luke Melia of Weplay share a series of examples of Redis in the real world. In doing so, they cover a survey of Redis' features, approach, history and philosophy. Most examples are drawn from the Weplay team's experience using Redis to power features on Weplay.com, a social site for youth sports.
Mythbusting: Understanding How We Measure the Performance of MongoDBMongoDB
Benchmarking, benchmarking, benchmarking. We all do it, mostly it tells us what we want to hear but often hides a mountain of misinformation. In this talk we will walk through the pitfalls that you might find yourself in by looking at some examples where things go wrong. We will then walk through how MongoDB performance is measured, the processes and methodology and ways to present and look at the information.
- Zhou Lizui is the founder and CEO of Sleepnova Inc. and a technical advisor for KKBOX on Android and cloud technologies.
- His interests include agile development, scalable architectures, and how information technology can benefit society.
- He has spoken at conferences on server-side JavaScript and NoSQL databases. One of his projects handled over 22 million requests in 4 hours for an election reporting system.
- RingoJS allows developing on the JVM with JavaScript's flexibility while accessing Java libraries, and offers alternatives to Node.js for server-side development.
Slide de ma présentation au Voxxed Days Luxembourg 2017.
http://cfp-voxxed-lux.yajug.org/2017/talk/KMC-5325/Documentation_as_code:_controler_la_qualite_!
"Document as code" consiste à utiliser toutes les bonnes pratiques que nous utilisons pour notre source code et de les appliquer à la documentation. Les points clés sont :
* Utiliser un outil de gestion des sources (git) et de préférence le même que pour les sources.
* Un format de texte simple (pas de XML) comme AsciiDoc.
* Mettre en place des outils d'intégration continu et déploiement continu
Lorsque cette bonne pratique est en place, se pose une seconde catégorie de problème. Comment garantir la qualité :
* Faciliter la barrière à l’entrée en proposant un lien pour éditer la documentation sur chaque page et pour soumettre une pull request.
* Test systématique des exemples de code
* Respect des conventions de documentation
* Métriques et dashboard pour garantir la qualité
* Partage de bonnes pratiques/revue de documentation.
Cette présentation est un retour d’expérience et donne quelques bonnes pratiques de documentation. C'est un aperçu de ce qui peut être mis en place pour s’assurer de la qualité de la doc.
This document discusses MongoDB performance tuning. It emphasizes that performance tuning is an obsession that requires planning schema design, statement tuning, and instance tuning in that order. It provides examples of using the MongoDB profiler and explain functions to analyze statements and identify tuning opportunities like non-covered indexes, unnecessary document scans, and low data locality. Instance tuning focuses on optimizing writes through fast update operations and secondary index usage, and optimizing reads by ensuring statements are tuned and data is sharded appropriately. Overall performance depends on properly tuning both reads and writes.
OrientDB is a multi-model NoSQL document database that provides both graph and document structures and queries. It supports ACID transactions, schema-full and schema-less modes, HTTP/binary protocols, and allows both SQL-like and native graph queries. OrientDB provides APIs for Java, JRuby and other languages to interface with the database.
Back to Basics Spanish Webinar 3 - Introducción a los replica setsMongoDB
Cómo crear un clúster de producción
Cómo crear un replica set
Cómo MongoDB gestiona la persistencia de los datos y cómo un conjunto de réplicas se recupera automáticamente de todo tipo de fallos
UnQLite is an embeddable, serverless, zero-configuration NoSQL database that uses a single database file with no external dependencies. It provides ACID transactions with key-value and document storage and supports efficient O(1) lookups. The database can be accessed from C code using a simple API to open and close the database, store, retrieve, append, and delete key-value pairs, and iterate over records with a cursor. It also supports loading and storing files and scripting functionality through Jx9 scripts.
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...MongoDB
This document contains the slides from a webinar on building a basic MongoDB application. It introduces MongoDB concepts and terminology, shows how to install MongoDB, create a basic blogging application with articles, users and comments, and add and query data. Key steps include installing MongoDB, launching the mongod process, connecting with the mongo shell, inserting documents, finding and querying documents, and updating documents by adding fields and pushing to arrays.
Map/Confused? A practical approach to Map/Reduce with MongoDBUwe Printz
Talk given at MongoDb Munich on 16.10.2012 about the different approaches in MongoDB for using the Map/Reduce algorithm. The talk compares the performance of built-in MongoDB Map/Reduce, group(), aggregate(), find() and the MongoDB-Hadoop Adapter using a practical use case.
Folienset von meinem eintägigen Workshop bei der DNUG Braunschweig.
Blogeintrag: http://blog.johanneshoppe.de/2012/08/nosql-bootcamp-fazit/
This document provides an overview of using Node.js with MySQL. It discusses creating a Node.js instance, integrating the MySQL module, and executing SQL statements and stored procedures. It also covers what Node.js, SQL, MySQL, MAMP, and phpMyAdmin are. Examples are given for creating tables, inserting data, executing queries, and creating and calling stored procedures from Node.js.
The document discusses 10 key performance indicators for MongoDB:
1) Slow operations using the profiler
2) Replication lag by checking oplog timestamps
3) High resident memory usage indicating paging is occurring
4) High page faults
5) High write lock percentage indicating concurrency issues
6) Large reader/writer queues indicating lock contention
7) Frequent background flushing indicating I/O issues
8) Too many connections
9) High network traffic
10) Collection fragmentation leading to increased storage size
It provides examples of how to check for each indicator using the db.serverStatus() command.
Indexing in MongoDB works similarly to indexing in relational databases. An index is a data structure that can make certain queries more efficient by maintaining a sorted order of documents. Indexes are created using the ensureIndex() method and take up additional space and slow down writes. The explain() method is used to determine whether a query is using an index.
This document provides an overview and instructions for deploying, upgrading, and troubleshooting a MongoDB sharded cluster. It describes the components of a sharded cluster including shards, config servers, and mongos processes. It provides recommendations for initial deployment including using replica sets for shards and config servers, DNS names instead of IPs, and proper user authorization. The document also outlines best practices for upgrading between minor and major versions, including stopping the balancer, upgrading processes in rolling fashion, and handling incompatible changes when downgrading major versions.
This document provides an overview of MongoDB and how it compares to traditional RDBMS systems. It discusses key concepts like how MongoDB uses JSON-like documents with flexible schemas rather than rigid tables. It also covers CRUD operations, indexing, replication, and how data is stored and queries in MongoDB compared to SQL.
2012-03-20 - Getting started with Node.js and MongoDB on MS AzureJohannes Hoppe
This talk concentrates on Microsoft's cloud platform, called Azure. Johannes gives an introduction to the new platform and speaks about its possibilities and limitations. By utilizing the Windows Azure SDK for Node.js he is going to demonstrate a simple JavaScript-driven browser game that bases on Node.js and MongoDB.
The document discusses trends in data, networking, and individualization. It then covers topics around scaling databases including scale-up (vertical scaling) and scale-out (horizontal scaling). It notes that NoSQL databases do not use a relational data model or SQL, instead supporting distributed and horizontal scalability with loose or no schema restrictions and different consistency models. Requirements for distributed systems like consistency, availability, and partition tolerance are discussed in relation to Brewer's CAP theorem from 2000.
MongoDB Chunks - Distribution, Splitting, and MergingJason Terpko
MongoDB Chunks – Distribution, Splitting, and Merging This presentation will discuss how the distribution of chunks can create scenarios where you may need to manually move, split, or merge chunks in your sharded cluster. Scenarios requiring these actions can exist with both optimal and sub-optimal shard keys. This can be especially true when a new change has been introduced to the workload. It may cause hot-spotting, unbalanced storage, or empty chunks.
Data Con LA 2020
Description
MySQL is an ubiquitous relational database that can also be used as a NoSQL JSON document store. That means you do not need a DBA to set up tables - just connect and start saving data. And you can access the NoSQL data from the SQL side or the SQL data from the NoSQL side which gives you the best of both the SQL and NoSQL worlds on the same server.
*Learn how to use the X DevAPI protocol for CRUD based operations
*See how to use JSON_TABLE() to turn unstructured data temporarily structured
*Understand how JSON really makes your relational database faster
*How to extract JSON data into a relational column
Speaker
Dave Stokes,Oracle, MySQL Community Manager
Noah Davis & Luke Melia of Weplay share a series of examples of Redis in the real world. In doing so, they cover a survey of Redis' features, approach, history and philosophy. Most examples are drawn from the Weplay team's experience using Redis to power features on Weplay.com, a social site for youth sports.
Mythbusting: Understanding How We Measure the Performance of MongoDBMongoDB
Benchmarking, benchmarking, benchmarking. We all do it, mostly it tells us what we want to hear but often hides a mountain of misinformation. In this talk we will walk through the pitfalls that you might find yourself in by looking at some examples where things go wrong. We will then walk through how MongoDB performance is measured, the processes and methodology and ways to present and look at the information.
- Zhou Lizui is the founder and CEO of Sleepnova Inc. and a technical advisor for KKBOX on Android and cloud technologies.
- His interests include agile development, scalable architectures, and how information technology can benefit society.
- He has spoken at conferences on server-side JavaScript and NoSQL databases. One of his projects handled over 22 million requests in 4 hours for an election reporting system.
- RingoJS allows developing on the JVM with JavaScript's flexibility while accessing Java libraries, and offers alternatives to Node.js for server-side development.
Slide de ma présentation au Voxxed Days Luxembourg 2017.
http://cfp-voxxed-lux.yajug.org/2017/talk/KMC-5325/Documentation_as_code:_controler_la_qualite_!
"Document as code" consiste à utiliser toutes les bonnes pratiques que nous utilisons pour notre source code et de les appliquer à la documentation. Les points clés sont :
* Utiliser un outil de gestion des sources (git) et de préférence le même que pour les sources.
* Un format de texte simple (pas de XML) comme AsciiDoc.
* Mettre en place des outils d'intégration continu et déploiement continu
Lorsque cette bonne pratique est en place, se pose une seconde catégorie de problème. Comment garantir la qualité :
* Faciliter la barrière à l’entrée en proposant un lien pour éditer la documentation sur chaque page et pour soumettre une pull request.
* Test systématique des exemples de code
* Respect des conventions de documentation
* Métriques et dashboard pour garantir la qualité
* Partage de bonnes pratiques/revue de documentation.
Cette présentation est un retour d’expérience et donne quelques bonnes pratiques de documentation. C'est un aperçu de ce qui peut être mis en place pour s’assurer de la qualité de la doc.
This document discusses MongoDB performance tuning. It emphasizes that performance tuning is an obsession that requires planning schema design, statement tuning, and instance tuning in that order. It provides examples of using the MongoDB profiler and explain functions to analyze statements and identify tuning opportunities like non-covered indexes, unnecessary document scans, and low data locality. Instance tuning focuses on optimizing writes through fast update operations and secondary index usage, and optimizing reads by ensuring statements are tuned and data is sharded appropriately. Overall performance depends on properly tuning both reads and writes.
OrientDB is a multi-model NoSQL document database that provides both graph and document structures and queries. It supports ACID transactions, schema-full and schema-less modes, HTTP/binary protocols, and allows both SQL-like and native graph queries. OrientDB provides APIs for Java, JRuby and other languages to interface with the database.
Back to Basics Spanish Webinar 3 - Introducción a los replica setsMongoDB
Cómo crear un clúster de producción
Cómo crear un replica set
Cómo MongoDB gestiona la persistencia de los datos y cómo un conjunto de réplicas se recupera automáticamente de todo tipo de fallos
UnQLite is an embeddable, serverless, zero-configuration NoSQL database that uses a single database file with no external dependencies. It provides ACID transactions with key-value and document storage and supports efficient O(1) lookups. The database can be accessed from C code using a simple API to open and close the database, store, retrieve, append, and delete key-value pairs, and iterate over records with a cursor. It also supports loading and storing files and scripting functionality through Jx9 scripts.
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...MongoDB
This document contains the slides from a webinar on building a basic MongoDB application. It introduces MongoDB concepts and terminology, shows how to install MongoDB, create a basic blogging application with articles, users and comments, and add and query data. Key steps include installing MongoDB, launching the mongod process, connecting with the mongo shell, inserting documents, finding and querying documents, and updating documents by adding fields and pushing to arrays.
Map/Confused? A practical approach to Map/Reduce with MongoDBUwe Printz
Talk given at MongoDb Munich on 16.10.2012 about the different approaches in MongoDB for using the Map/Reduce algorithm. The talk compares the performance of built-in MongoDB Map/Reduce, group(), aggregate(), find() and the MongoDB-Hadoop Adapter using a practical use case.
Folienset von meinem eintägigen Workshop bei der DNUG Braunschweig.
Blogeintrag: http://blog.johanneshoppe.de/2012/08/nosql-bootcamp-fazit/
This document provides an overview of using Node.js with MySQL. It discusses creating a Node.js instance, integrating the MySQL module, and executing SQL statements and stored procedures. It also covers what Node.js, SQL, MySQL, MAMP, and phpMyAdmin are. Examples are given for creating tables, inserting data, executing queries, and creating and calling stored procedures from Node.js.
The document discusses 10 key performance indicators for MongoDB:
1) Slow operations using the profiler
2) Replication lag by checking oplog timestamps
3) High resident memory usage indicating paging is occurring
4) High page faults
5) High write lock percentage indicating concurrency issues
6) Large reader/writer queues indicating lock contention
7) Frequent background flushing indicating I/O issues
8) Too many connections
9) High network traffic
10) Collection fragmentation leading to increased storage size
It provides examples of how to check for each indicator using the db.serverStatus() command.
Indexing in MongoDB works similarly to indexing in relational databases. An index is a data structure that can make certain queries more efficient by maintaining a sorted order of documents. Indexes are created using the ensureIndex() method and take up additional space and slow down writes. The explain() method is used to determine whether a query is using an index.
This document provides an overview and instructions for deploying, upgrading, and troubleshooting a MongoDB sharded cluster. It describes the components of a sharded cluster including shards, config servers, and mongos processes. It provides recommendations for initial deployment including using replica sets for shards and config servers, DNS names instead of IPs, and proper user authorization. The document also outlines best practices for upgrading between minor and major versions, including stopping the balancer, upgrading processes in rolling fashion, and handling incompatible changes when downgrading major versions.
This document provides an overview of MongoDB and how it compares to traditional RDBMS systems. It discusses key concepts like how MongoDB uses JSON-like documents with flexible schemas rather than rigid tables. It also covers CRUD operations, indexing, replication, and how data is stored and queries in MongoDB compared to SQL.
2012-03-20 - Getting started with Node.js and MongoDB on MS AzureJohannes Hoppe
This talk concentrates on Microsoft's cloud platform, called Azure. Johannes gives an introduction to the new platform and speaks about its possibilities and limitations. By utilizing the Windows Azure SDK for Node.js he is going to demonstrate a simple JavaScript-driven browser game that bases on Node.js and MongoDB.
The document discusses trends in data, networking, and individualization. It then covers topics around scaling databases including scale-up (vertical scaling) and scale-out (horizontal scaling). It notes that NoSQL databases do not use a relational data model or SQL, instead supporting distributed and horizontal scalability with loose or no schema restrictions and different consistency models. Requirements for distributed systems like consistency, availability, and partition tolerance are discussed in relation to Brewer's CAP theorem from 2000.
MongoDB Chunks - Distribution, Splitting, and MergingJason Terpko
MongoDB Chunks – Distribution, Splitting, and Merging This presentation will discuss how the distribution of chunks can create scenarios where you may need to manually move, split, or merge chunks in your sharded cluster. Scenarios requiring these actions can exist with both optimal and sub-optimal shard keys. This can be especially true when a new change has been introduced to the workload. It may cause hot-spotting, unbalanced storage, or empty chunks.
Data Con LA 2020
Description
MySQL is an ubiquitous relational database that can also be used as a NoSQL JSON document store. That means you do not need a DBA to set up tables - just connect and start saving data. And you can access the NoSQL data from the SQL side or the SQL data from the NoSQL side which gives you the best of both the SQL and NoSQL worlds on the same server.
*Learn how to use the X DevAPI protocol for CRUD based operations
*See how to use JSON_TABLE() to turn unstructured data temporarily structured
*Understand how JSON really makes your relational database faster
*How to extract JSON data into a relational column
Speaker
Dave Stokes,Oracle, MySQL Community Manager
The document discusses using JSON documents within a relational database. It provides examples of storing JSON documents in MySQL collections and querying them using both document and SQL syntax. Key points include:
- JSON documents can be stored in MySQL collections, providing a flexible document data model while retaining MySQL's reliability and ACID transactions.
- Documents can be queried using either document queries or by converting the JSON to relational form using JSON_TABLE, allowing the use of SQL.
- Examples are shown in several languages for CRUD operations on collections as well as indexing, validation, and more advanced queries like aggregating data from arrays.
- Storing JSON documents natively in MySQL allows leveraging both document and rel
Discover The Power of NoSQL + MySQL with MySQLDave Stokes
The document discusses the MySQL Document Store, which provides both NoSQL and SQL capabilities on a single platform. It allows for schemaless document storage and querying using JSON documents, while also providing the reliability, security and transaction support of MySQL. Examples are given in several programming languages of basic CRUD operations on document collections using simple APIs that avoid the need for SQL. The document also shows how JSON documents can be queried using SQL/JSON functions, enabling more complex analysis that was previously only possible in a relational database. This provides the best aspects of both NoSQL and SQL on a proven database platform.
This document discusses MySQL Document Store, which allows both SQL and NoSQL functionality on the MySQL platform. It provides benefits for developers, operations teams, and business owners. MySQL Document Store uses JSON documents stored in MySQL tables, providing a schemaless document model with ACID transactions. This allows flexible data structures while maintaining SQL's reliability. The document demonstrates CRUD operations and querying documents using either SQL or NoSQL-style APIs. It concludes that MySQL Document Store provides the best of both SQL and NoSQL worlds in a single product.
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScriptDave Stokes
The MySQL Shell has a JavaScript mode where you can use JS libraries to access you data and you can also write (and save) your own custom reports (or programs) for future use.
The document provides an overview of the MySQL Document Store, which allows storing and querying JSON documents within MySQL tables without requiring SQL. It is built on the MySQL JSON data type and X DevAPI. Key features highlighted include the ability to work with both relational tables and document collections together using various programming languages, transactions, and casting collections as tables. The document store is available in MySQL 5.7 and 8 via a plug-in.
MySQL Without the SQL -- Oh My! Longhorn PHP ConferenceDave Stokes
You can now use MySQL without needing to know Structured Query Language (SQL) with the MySQL Document Store. Access JSON documents and/or relational tables using the new X DevAPI
Starting with MySQL 5.7.12 we introduced a new plugin to use MySQL as a Document Store. This presentation gives an overview of current features and plans going forward.
SwanseaCon 2017 presentation on Making MySQL Agile-ish. Relational Databases are not usually considered part of the Agile Programming movement but there are many new features in MySQL to make it easier to include it. This presentation covers how MySQL is moving to help support agile development while maintaining the traditional 'non agile' stability expected from a database.
Polyglot Database - Linuxcon North America 2016Dave Stokes
Many Relation Databases are adding NoSQL features to their products. So what happens when you can get direct access to the data as a key/value pair, or you can store an entire document in a column of a relational table, and more
NoSQL databases were created to handle large and growing datasets for web applications. They are non-tabular, distributed, open source, and designed for high performance, scalability, and availability. The document focuses on key characteristics of NoSQL like schema flexibility, horizontal scaling, and the BASE consistency model. It also covers major NoSQL types (key-value, document, and column-oriented), queries, and compares NoSQL to SQL databases in terms of features, performance, and cost.
Python And The MySQL X DevAPI - PyCaribbean 2019Dave Stokes
The document discusses the MySQL X DevAPI and how it allows developers to work with MySQL as a document store using a modern programming style. Some key points:
- X DevAPI wraps powerful concepts in a simple API, allowing applications to establish logical sessions to MySQL server instances running the X Plugin without code changes for single or clustered deployments.
- Documents are stored in Collections and CRUD (create, read, update, delete) operations can be performed on them directly rather than embedding SQL strings.
- An example Python program uses the MySQL Connector/Python library to connect to a MySQL server, retrieve a document from a collection using a filter, and print the result.
- The emphasis is on working
The document discusses how to connect a Node.js application to a MySQL database. It covers setting up the environment, initializing a project, installing dependencies, creating a database, establishing a connection, handling environment variables, performing CRUD operations, handling errors, and calling stored procedures. Code examples are provided for each step to demonstrate how to connect Node.js to MySQL and execute queries to retrieve, add, update and delete data.
PHP, The X DevAPI, and the MySQL Document Store Presented January 23rd, 20...Dave Stokes
This presentation from the January 2019 Benelux PHP conference and covers use of the MySQL Document Store via the X DevAPI so that MySQL can used as a NoSQL JSON Document store as wells as a relational database, providing the best of both works
All Things Open 2016 -- Database Programming for NewbiesDave Stokes
This presentation covers much a new developer needs to know about working WITH a database instead of against it. Plus there is much on what goes on behind the scenes when you submit a query and hints on how to avoid the big problems that can ruin your data
Back to Basics Webinar 2 - Your First MongoDB ApplicationJoe Drumgoole
How to build a MongoDB application from scratch in the MongoDB Shell and Python. How to add indexes and use explain to make sure you are using them properly.
Database basics for new-ish developers -- All Things Open October 18th 2021Dave Stokes
Do you wonder why it takes your database to find the top five of your fifty six million customers? Do you really have a good idea of what NULL is and how to use it? And why are some database queries so quick and others frustratingly slow? Relational databases have been around for over fifty years and frustrating developers for at least forty nine of those years. This session is an attempt to explain why sometimes the database seems very fast and other times not. You will learn how to set up data (normalization) to avoid redundancies into tables by their function, how to join two tables to combine data, and why Structured Query Language is so very different than most other languages. And you will see how thinking in sets over records can greatly improve your life with a database.
Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...Dave Stokes
This document discusses various ways to speed up queries in MySQL, including the proper use of indexes, histograms, and locking options. It begins with an introduction to indexes, explaining that indexes are data structures that improve the speed of data retrieval by allowing for faster lookups and access to ordered records. The document then covers different types of indexes like clustered indexes, secondary indexes, functional indexes, and multi-value indexes. It emphasizes choosing indexes carefully based on the most common queries and selecting columns that are not often updated. Overall, the document provides an overview of optimization techniques in MySQL with a focus on index usage.
MySQL 8.0 New Features -- September 27th presentation for Open Source SummitDave Stokes
MySQL 8.0 has many new features that you probably need to know about but don't. Like default security, window functions, CTEs, CATS (not what you think), JSON_TABLE(), and UTF8MB4 support.
Dutch PHP Conference 2021 - MySQL Indexes and HistogramsDave Stokes
This document discusses how to speed up queries in MySQL through the proper use of indexes, histograms, and other techniques. It begins by explaining that the MySQL optimizer tries to determine the most efficient way to execute queries by considering different query plans. The optimizer relies on statistics about column distributions to estimate query costs. The document then discusses using EXPLAIN to view and analyze query plans, and how indexes can improve query performance by allowing faster data retrieval through secondary indexes and other index types. Proper index selection and column data types are important to allow the optimizer to use indexes efficiently.
Data Love Conference - Window Functions for Database AnalyticsDave Stokes
16 April 2021 presentation for the Data Love Conference on Window Functions for Data Base Analytics. Examples are on MySQL but will work for other RDMS's with window functions. Assumes no user background on window functions or analytics
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...Dave Stokes
Speeding up queries on a MySQL server with indexes and histograms is not a mysterious art but simple engineering. This presentation is an indepth introduction that was presented on March 30th to the Quest Insynch and Open Source 101 conferences
Confoo.ca conference talk February 24th 2021 on MySQL new features found in version 8.0 including server and supporting utility updates for those who may have missed some really neat new features
Confoo 2021 - MySQL Indexes & HistogramsDave Stokes
Confoo 2021 presentation on MySQL Indexes, Histograms, and other ways to speed up your queries. This slide deck has slides that may not have been included in the presentation that were omitted due to time constraints
MySQL 8.0 introduces new features like resource groups to dedicate server resources to different query classes. It has a faster backup process using MySQL Shell utilities and compression of replication logs. The presentation provides an overview of InnoDB Cluster which allows multi-primary replication topologies and automated failover using Group Replication. It demonstrates how to easily set up a basic 3 node InnoDB Cluster on the local machine for testing using the MySQL Shell. MySQL Router can then be used to route application connections to the cluster for load balancing and high availability without application changes.
A Step by Step Introduction to the MySQL Document StoreDave Stokes
Looking for a fast, flexible NoSQL document store? And one that runs with the power and reliability of MySQL. This is an intro on how to use the MySQL Document Store
Confoo 202 - MySQL Group Replication and ReplicaSetDave Stokes
MySQL Group Replication, ReplicaSet, & Architectures outlines MySQL's general product direction for high availability and replication. It provides an overview of Group Replication, ReplicaSet, and related components like MySQL Shell and MySQL Router. Key capabilities discussed include automated setup and management, integrated load balancing, and both asynchronous and synchronous replication options. Limitations noted include the requirement for manual failover in ReplicaSet deployments.
PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...Dave Stokes
Slow query? Add an index or two! But things are suddenly even slower! Indexes are great tools to speed data lookup but have overhead issues. Histograms don’t have that overhead but may not be suited. And how you lock rows also effects performance. So what do you do to speed up queries smartly?
MySQL New Features -- Sunshine PHP 2020 PresentationDave Stokes
MySQL has moved to a quarterly release cycle and it can be hard to keep up with the new features. For instance, there are now multi-valued indexes for things like JSON arrays to allow for fast searches of embedded data. And there is a bulk loaded for JSON, CSV, and TSV data that works in parallel. Or support for JSON-Schame.org's JSON schema validation. Plus you no longer need to run mysql_upgrade after an upgrade as that is all automated. In addition, you can now clone InnoDB tablespaces for fast initialization of replicate data. So if you need to catch up on the latest and greatest from MySQL you need to be in this session.
MySQL 8 - UKOUG Techfest Brighton December 2nd, 2019Dave Stokes
The document discusses several new features in MySQL 8 including:
1. A new data dictionary that stores metadata internally instead of external files, allowing for transactional ALTER TABLE commands.
2. Support for common table expressions and windowing functions.
3. Improvements to the optimizer including index and join order hints, descending indexes, and optimizer trace output providing more details.
4. Support for roles which are named collections of privileges that can be assigned to users.
5. UTF8MB4 is now the default character set providing support for emoji and supplementary characters.
6. Ability to create invisible indexes that are not used by the optimizer but are maintained for testing performance impact.
Upgrading to MySQL 8.0 webinar slides November 27th, 2019Dave Stokes
- The document discusses upgrading from MySQL 5.7 to MySQL 8.0, providing guidance on the upgrade path and process.
- It describes running checks using the new MySQL Shell utility to detect any issues in the 5.7 instance that need addressing before upgrading, such as incompatible syntax, removed features, or changed defaults.
- Advice is given on backup procedures, reading the upgrade documentation, and addressing any warnings or errors reported by the upgrade checker to ensure a smooth transition.
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC
Joyce Chen, Senior Advisor, Strategic Engagement at APNIC, presented on 'APNIC Policy Development Process' at the Local APIGA Taiwan 2025 event held in Taipei from 19 to 20 April 2025.
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingsteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
Reliable Vancouver Web Hosting with Local Servers & 24/7 Supportsteve198109
Looking for powerful and affordable web hosting in Vancouver? 4GoodHosting offers premium Canadian web hosting solutions designed specifically for individuals, startups, and businesses across British Columbia. With local data centers in Vancouver and Toronto, we ensure blazing-fast website speeds, superior uptime, and enhanced data privacy—all critical for your business success in today’s competitive digital landscape.
Our Vancouver web hosting plans are packed with value—starting as low as $2.95/month—and include secure cPanel management, free domain transfer, one-click WordPress installs, and robust email support with anti-spam protection. Whether you're hosting a personal blog, business website, or eCommerce store, our scalable cloud hosting packages are built to grow with you.
Enjoy enterprise-grade features like daily backups, DDoS protection, free SSL certificates, and unlimited bandwidth on select plans. Plus, our expert Canadian support team is available 24/7 to help you every step of the way.
At 4GoodHosting, we understand the needs of local Vancouver businesses. That’s why we focus on speed, security, and service—all hosted on Canadian soil. Start your online journey today with a reliable hosting partner trusted by thousands across Canada.
Best web hosting Vancouver 2025 for you businesssteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
Virtualization Trends Streamlining Operations in Telecom with David Bernard ...David Bernard Ezell
The telecommunications industry is undergoing a significant transformation driven by virtualization technologies. Virtualization, which involves the abstraction of hardware resources and the creation of virtual instances of software-based functions, is revolutionizing the way telecom operators design, deploy, and manage their networks. In this blog, we delve into the latest virtualization trends that are reshaping operations in the telecom sector, driving efficiency, agility, and innovation.
What's going on with IPv6? presented by Geoff HustonAPNIC
APNIC Chief Scientist, Geoff Huston, presented on the global deployment of IPv6 at the 6th ICANN APAC-TWNIC Engagement Forum and 43rd TWNIC OPM held in Taipei from 22 to 24 April 2025.
Smart Mobile App Pitch Deck丨AI Travel App Presentation Templateyojeari421237
🚀 Smart Mobile App Pitch Deck – "Trip-A" | AI Travel App Presentation Template
This professional, visually engaging pitch deck is designed specifically for developers, startups, and tech students looking to present a smart travel mobile app concept with impact.
Whether you're building an AI-powered travel planner or showcasing a class project, Trip-A gives you the edge to impress investors, professors, or clients. Every slide is cleanly structured, fully editable, and tailored to highlight key aspects of a mobile travel app powered by artificial intelligence and real-time data.
💼 What’s Inside:
- Cover slide with sleek app UI preview
- AI/ML module implementation breakdown
- Key travel market trends analysis
- Competitor comparison slide
- Evaluation challenges & solutions
- Real-time data training model (AI/ML)
- “Live Demo” call-to-action slide
🎨 Why You'll Love It:
- Professional, modern layout with mobile app mockups
- Ideal for pitches, hackathons, university presentations, or MVP launches
- Easily customizable in PowerPoint or Google Slides
- High-resolution visuals and smooth gradients
📦 Format:
- PPTX / Google Slides compatible
- 16:9 widescreen
- Fully editable text, charts, and visuals
How to Switch Hosting Providers in Vancouver Without Any Downtimesteve198109
Switching web hosting providers can feel like a daunting task—especially if you're running a business, wellness brand, blog, or eCommerce store in Vancouver that depends on 24/7 uptime. This comprehensive guide walks you through every essential step to migrate your website to a new hosting provider without experiencing any downtime or disruption. Whether you're switching due to slow load times, poor customer service, rising renewal costs, or a desire for better security and scalability, this post ensures you do it right the first time.
From choosing the right local hosting service in Vancouver—such as 4GoodHosting—to backing up your files, testing your new environment, and monitoring DNS changes, every phase is explained with practical tips and tools. You'll also discover why Vancouver-based servers improve your SEO, boost page speed, and offer regionally aligned customer support. Perfect for green startups, wellness entrepreneurs, and growing online stores, this guide helps ensure a smooth transition with no interruptions, lost data, or negative customer experiences.
If you're ready to make the switch and want to protect your brand reputation, maximize website performance, and maintain business continuity, this guide is your roadmap. Let 4GoodHosting help you get started with secure, local, and scalable hosting solutions in Canada.
Understanding the Tor Network and Exploring the Deep Webnabilajabin35
While the Tor network, Dark Web, and Deep Web can seem mysterious and daunting, they are simply parts of the internet that prioritize privacy and anonymity. Using tools like Ahmia and onionland search, users can explore these hidden spaces responsibly and securely. It’s essential to understand the technology behind these networks, as well as the risks involved, to navigate them safely. Visit https://torgol.com/
4. Safe Harbor Agreement
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.
4
9. Relational Databases
● Need to set up tables BEFORE use
● Relations, indexes, data normalization, query optimizations
● Hard to change on the fly
● Need a DBA or someone who has DBA skills
9
11. NoSQL or Document Store
● Schemaless
○ No schema design, no normalization, no foreign keys, no data types, …
○ Very quick initial development
● Flexible data structure
○ Embedded arrays or objects
○ Valid solution when natural data can not be modelized optimally into a
relational model
○ Objects persistence without the use of any ORM - *mapping object-
oriented*
11
12. NoSQL or Document Store
● JSON
● close to frontend
● native in JS
● easy to learn
12
13. How DBAs see data as opposed to how Developers see data
{
"GNP" : 249704,
"Name" : "Belgium",
"government" : {
"GovernmentForm" :
"Constitutional Monarchy, Federation",
"HeadOfState" : "Philippe I"
},
"_id" : "BEL",
"IndepYear" : 1830,
"demographics" : {
"Population" : 10239000,
"LifeExpectancy" : 77.8000030517578
},
"geography" : {
"Region" : "Western Europe",
"SurfaceArea" : 30518,
"Continent" : "Europe"
}
}
13
14. What if there was a way to provide both
SQL and NoSQL on one stable platform that
has proven stability on well know
technology with a large Community and a
diverse ecosystem ?
With the MySQL Document
Store it is now an option!
14
15. A Solution for all
Developers:
schemaless
★ rapid prototyping
& simpler APIs
★ document model
★ transactions
Operations:
★ performance
management/visibility
★ robust replication,
backup, restore
★ comprehensive tooling
ecosystem
★ simpler application
schema upgrades 15
Business Owner:
★ don't lose my data ==
ACID trx
★ capture all my data =
extensible/schemaless
★ product on
schedule/time to
market = rapid
development
16. Built on the MySQL JSON Data type and Proven MySQL Server Technology 16
★ Provides a schema flexible JSON Document Store
★ No SQL required
★ No need to define all possible attributes, tables,
etc.
★ Uses new X DevAPI
★ Can leverage generated column to extract JSON
values into materialized columns that can be
indexed for fast SQL searches.
17. Built on the MySQL JSON Data type and Proven MySQL Server Technology 17
★ Document can be ~1GB
○ It's a column in a row of a table
★ Allows use of modern programming styles
○ No more embedded strings of SQL in your code
○ Easy to read
★ Also works with relational Tables
★ Proven MySQL Technology
18. ★ C++
★ Java
★ .Net
★ Node.js
★ JavaScript
★ Python
★ PHP
○ Working with other Communities to help them supporting it too 18
Connectors for
19. ★ Command Completion
★ Python, JavaScripts & SQL modes
★ Admin functions
★ New Util object
★ A new high-level session concept that can scale from single MySQL
Server to a multiple server environment
19
New MySQL Shell
25. JavaScript 25
// Connecting to MySQL Server and working with a Collection
var mysqlx = require('mysqlx');
// Connect to server
var mySession = mysqlx.getSession( {
host: 'localhost', port: 33060,
user: 'user', password: 'password'} );
var myDb = mySession.getSchema('test');
// Create a new collection 'my_collection'
var myColl = myDb.createCollection('my_collection');
// Insert documents
myColl.add({_id: '1', name: 'Sakila', age: 15}).execute();
myColl.add({_id: '2', name: 'Susanne', age: 24}).execute();
myColl.add({_id: '3', name: 'User', age: 39}).execute();
// Find a document
var docs = myColl.find('name like :param1 AND age < :param2').limit(1).
bind('param1','S%').bind('param2',20).execute();
// Print document
print(docs.fetchOne());
// Drop the collection
myDb.dropCollection('my_collection');
26. Python 26
# Connecting to MySQL Server and working with a Collection
from mysqlsh import mysqlx
# Connect to server
mySession = mysqlx.get_session( {
'host': 'localhost', 'port': 33060,
'user': 'user', 'password': 'password'} )
myDb = mySession.get_schema('test')
# Create a new collection 'my_collection'
myColl = myDb.create_collection('my_collection')
# Insert documents
myColl.add({'_id': '1', 'name': 'Sakila', 'age': 15}).execute()
myColl.add({'_id': '2', 'name': 'Susanne', 'age': 24}).execute()
myColl.add({'_id': '3', 'name': 'User', 'age': 39}).execute()
# Find a document
docs = myColl.find('name like :param1 AND age < :param2')
.limit(1)
.bind('param1','S%')
.bind('param2',20)
.execute()
# Print document
doc = docs.fetch_one()
print doc
27. Node.JS 27
// Connecting to MySQL Server and working with a Collection
var mysqlx = require('@mysql/xdevapi');
var db;
// Connect to server
mysqlx
.getSession({
user: 'user',
password: 'password',
host: 'localhost',
port: '33060',
})
.then(function (session) {
db = session.getSchema('test');
// Create a new collection 'my_collection'
return db.createCollection('my_collection');
})
.then(function (myColl) {
// Insert documents
return Promise
.all([
myColl.add({ name: 'Sakila', age: 15 }).execute(),
myColl.add({ name: 'Susanne', age: 24 }).execute(),
myColl.add({ name: 'User', age: 39 }).execute()
])
.then(function () {
// Find a document
return myColl
.find('name like :name && age < :age')
.bind({ name: 'S%', age: 20 })
.limit(1)
.execute(function (doc) {
// Print document
console.log(doc);
});
});
})
.then(function(docs) {
// Drop the collection
return db.dropCollection('my_collection');
})
.catch(function(err) {
// Handle error
});
28. C++ 28
// Connect to server
var mySession = MySQLX.GetSession("server=localhost;port=33060;user=user;password=password;");
var myDb = mySession.GetSchema("test");
// Create a new collection "my_collection"
var myColl = myDb.CreateCollection("my_collection");
// Insert documents
myColl.Add(new { name = "Sakila", age = 15}).Execute();
myColl.Add(new { name = "Susanne", age = 24}).Execute();
myColl.Add(new { name = "User", age = 39}).Execute();
// Find a document
var docs = myColl.Find("name like :param1 AND age < :param2").Limit(1)
.Bind("param1", "S%").Bind("param2", 20).Execute();
// Print document
Console.WriteLine(docs.FetchOne());
// Drop the collection
myDb.DropCollection("my_collection");
29. Java 29
// Connect to server
Session mySession = new
SessionFactory().getSession("mysqlx://localhost:33060/test?user=user&password=password");
Schema myDb = mySession.getSchema("test");
// Create a new collection 'my_collection'
Collection myColl = myDb.createCollection("my_collection");
// Insert documents
myColl.add("{"name":"Sakila", "age":15}").execute();
myColl.add("{"name":"Susanne", "age":24}").execute();
myColl.add("{"name":"User", "age":39}").execute();
// Find a document
DocResult docs = myColl.find("name like :name AND age < :age")
.bind("name", "S%").bind("age", 20).execute();
// Print document
DbDoc doc = docs.fetchOne();
System.out.println(doc);
// Drop the collection
myDB.dropCollection("test", "my_collection");
36. For this example, I will use the well known restaurants collection:
We need to dump the data to a file and
we will use the MySQL Shell
with the Python interpreter to load the data.
Migration from MongoDB to MySQL Document Store
36
37. Dump and load using MySQL Shell & Python
This example is inspired by @datacharmer's work: https://www.slideshare.net/datacharmer/mysql-documentstore
$ mongo quiet eval 'DBQuery.shellBatchSize=30000;
db.restaurants.find().shellPrint()'
| perl -pe 's/(?:ObjectId|ISODate)(("[^"]+"))/ $1/g' > all_recs.json
37
53. ★ Native data type (since 5.7.8)
★ JSON values are stored in MySQL tables using UTF8MB4
★ Conversion from "native" SQL types to JSON values
★ JSON manipulation functions (JSON_EXTRACT, JSON_KEYS,
JSON_SEARCH, JSON_TABLES, ...)
★ Generated/virtual columns
○ Indexing JSON data
○ Foreign Keys to JSON data
○ SQL Views to JSON data
JSON datatype is behind the scene
53
55. What does a collection look like on the server ? 55
56. Every document has a unique identifier called the document ID, which can be
thought of as the equivalent of a table's primary key. The document ID value can
be manually assigned when adding a document.
If no value is assigned, a document ID is generated and assigned to the
document automatically !
Use getDocumentId() or getDocumentIds() to get _ids(s)
_id
56
57. Mapping to SQL Examples
createCollection('mycollection')
versus
CREATE TABLE `test`.`mycoll` (
doc JSON,
_id VARCHAR(32)
GENERATED ALWAYS AS (doc->>'$._id')
STORED
PRIMARY KEY
) CHARSET utf8mb4;
57
58. Mapping to SQL Examples
mycollection.add({‘test’: 1234})
versus
INSERT INTO `test`.`mycoll` (doc)
VALUES ( JSON_OBJECT( 'test',1234));
58
59. More Mapping to SQL Examples
mycollection.find("test > 100")
Versus
SELECT doc
FROM `test`.`mycoll`
WHERE (JSON_EXTRACT(doc,'$.test')
>100);
59
73. Find the top 10 restaurants by grade for each cuisine 73
WITH cte1 AS
(SELECT doc->>"$.name" AS name,
doc->>"$.cuisine" AS cuisine,
(SELECT AVG(score) FROM
JSON_TABLE(doc, "$.grades[*]" COLUMNS
(score INT PATH "$.score")) AS r) AS avg_score
FROM restaurants)
SELECT *, RANK() OVER
(PARTITION BY cuisine ORDER BY avg_score DESC) AS `rank`
FROM cte1
ORDER BY `rank`, avg_score DESC LIMIT 10;
This query uses a Common Table Expression (CTE) and a Windowing Function to rank the
average scores of each restaurant, by each cuisine assembled in a JSON_TABLE
75. This is the best of the two worlds in one product !
● Data integrity
● ACID Compliant
● Transactions
● SQL
● Schemaless
● flexible data structure
● easy to start (CRUD)
75
80. New in MySQL 8.0
1. True Data Dictionary
2. Default UTF8MB4
3. Windowing Functions, CTEs, Lateral Derived Joins
4. InnoDB SKIPPED LOCK and NOWAIT
5. Instant Add Column
6. Histograms
7. Resource Groups
8. Better optimizer with new temporary table engine
9. True Descending Indexes
10.3D GIS
11.JSON Enhancements
80
81. Please buy my book!
If you deal with the JSON
Data Type or have an
interest in the MySQL
Document Store, this text is a
great guide with many
examples to help you
understand the complexities
and opportunities with a
native JSON Data Type
81