SlideShare uma empresa Scribd logo
SQL e NoSQL trabalhando juntos: uma comparação para obter o
melhor de ambos
Agenda
● Definição de MongoDB e MySQL
● Conceitos de bancos relacionais e não relacionais
● Principais diferenças entre o MySQL e o MongoDB
● Similaridades
● Query Language;
● Comparação de performance
● Segurança;
● Melhores use cases
● Q&A
Sobre mim
● Adamo Tonete
○ MongoDB Support Engineer @Percona
DBA Easy Taxi
/adamotonete
MongoDB e MySQL
O que é MongoDB
● Document Oriented Database
● NoSQL
● Open source
● Banco de Dados NoSQL mais popular atualmente
● Alta performance
● Relational Database Management System
● Segundo banco de dados mais popular de acordo com DBEngines
● Feito para ser utilizado com diferentes storage engines
● Suporta diferentes topologias de replicação
O que é MySQL
Conceitos de NoSQL e Relacional
Conceito de Banco de Dados
Um gerenciador de banco de dados é organizado da seguinte maneira
● Dados
● Schema
● Tabelas
● Query Language
● Relatórios
● Views
● Other elements.
Conceito de Banco de Dados Relacionais
● Foram escritos na época de 1970
● Linhas e atributos definem relações entre
tabelas
● Dados Normalizados
● SQL Language
● Procedures
● Triggers
● Foreign keys
● Transações - ACID
Conceitos de Bancos de Dados não relacionais
● Primeiros NoSQL surgiram no começo dos anos 2000s;
● Conceito de não relacional, sem tabelas ou relações entre elas;
● Não utiliza padrão T-SQL
● Criado para encaixar-se melhor com linguagens mais novas
● De fácil desenvolvimento
Principais diferenças entre MongoDB e MySQL
Diferenças entre MongoDB e MySQL
● Algumas das features que vamos comparar
○ Normalização
○ Transações
○ Linguagem de consulta
○ Forma de salvar dados no disco (storage engine)
○ Diferenças de indexes
○ Modo de escalar e distribuir o banco de dados (HA)
MongoDB e MySQL são diferentes?
● NoSQL e SQL não são inimigos
○ Eles são complementos um dos outros
● Enquanto o MongoDB é um banco de dados relativamente novo O MySQL já é
um banco de dados relacional consolidado no mercado.
● Para alguns use-cases MongoDB como principal Banco de dados não é a
melhor coisa a se fazer.
● No entanto, o MongoDB pode oferecer uma facilidade muito grande para
startups e metodologias ágeis.
MongoDB e MySQL são diferentes?
● Comparando distribuição de dados
○ MongoDB é projetado para manipular altas cargas de dados
○ MySQL pode ser shardeado utilizando alguns add-ons
○ MySQL foi a princípio desenvolvido para funcionar numa máquina apenas
Normalização
● MongoDB sugere boas práticas para salvar seus dados mas não o força a
fazer isso.
● MySQL por outro lado força um schema pré-definido onde na maioria dos
bancos é utilizado a 3 forma normal para evitar duplicação de dados.
Normalização
Normalização
{
"_id" : ObjectId("507f1f77bcf86cd799439011"),
"studentID" : 100,
"firstName" : "Jonathan",
"middleName" : "Eli",
"lastName" : "Tobin",
"classes" : [
{ "courseID" : "PHY101",
"grade" : "B",
"courseName" : "Physics 101",
"credits" : 3 },
{ "courseID" : "BUS101",
"grade" : "B+",
"courseName" : "Business 101",
"credits" : 3 }
]
Normalização
ACID
● O que é ACID
○ Atomicidade
○ Consistência
○ Isolamento
○ Durabilidade
● Como o ACID é representado no MySQL.
○ Atomicidade
■ Se autocommit=ON (default), todo comando é salvo imediatamente
■ Se não, COMMIT or ROLLBACK deve ser usado explicitamente
○ Consistencia
■ Utiliza doublewrite e crash recovery
○ Isolation
■ Diferente níveis de isolamento, RC, RU
○ Durabilidade
■ Existem várias configurações, sendo as principais innodb_flush_log_at_trx_commit and
sync_binlog
ACID
● Como ACID é representada no MongoDB?
○ Atomicidade
■ Documento é atômico
○ Consistência
■ primário = garantida
■ secondários = depende do write Concern
○ Isolamento
■ Não é 100% podendo forçar com $snapshot
○ Durabilidade
■ configurável w:majority and/or j:true
ACID
CAP theorem - MongoDB
● Teorema CAP foi proposto por Eric Allen
em 2000
● Um sistema distribuído não pode ter 3
garantias ao mesmo tempo. Uma deve
ser sacrificado
CAP theorem - MongoDB
A
PC
● Consistência
● Disponibilidade
● Tolerancia a Particionamento
Todos receberão a mesma resposta
independente do nó.
● Consistência
● Disponibilidade
● Tolerancia a Particionamento
O sistema sempre responde os requests
CAP theorem - MongoDB
A
PC
CAP theorem - MongoDB
A
PC
● Consistência
● Disponibilidade
● Tolerância a Particionamento
Sistema pode se recuperar de um erro
de rede ou máquina
CAP theorem - MongoDB
A
PC
Relacional
MySQL
Postgres
Cassandra
Riaki
MongoDB
Redis
● MySql contem tabelas pré definidas.
● Cada coluna pode ter um e somente um tipo de dados pre definido.
● Limites de tamanos de linhas/colunas
○ Colunas máximas numa tabela: 4096
● SQL é uma linguagem declarativa
● Diversos conectores
○ https://www.mysql.com/products/connector/
Salvando e consultando dados
Salvando e consultando dados
● Diferentemente do MySQL o MongoDB não tem um schema pre-definido.
● Os documentos podem ter diferentes valores para as mesmas colunas
{x : 1, y : ['test']}
e
{x : 'percona', y : ISODate('2018-01-01')}
São validos.
● MongoDB não utiliza-se de normalização, ao contrario de boas praticas do
MySQL
● Todos os documentos devem conter o máximo de informação possível pois
não há joins.
● Tamanho máximo de um documento é de 16MB
Salvando e consultando dados
● Replica-sets
● Cluster e shards
● Master Slave
Comparando Topologias
● O que é escalabilidade?
○ "Habilidade de adicionar mais recursos"
● Scale up (a.k.a.: verticalmente)
○ Melhorar hardware (máquina maior)
● Scale out (a.k.a.: horizontalmente)
○ Add mais instâncias
Escalabilidade
● MongoDB:
○ Utiliza sharding para escalar escritas
○ Utiliza secundários para escalar leituras
● MySQL:
○ Pode utilizar particionamento e "sharding" para escalar escritas (mas não tão fácil quanto o
mongodb)
○ Utiliza escravos (secundários) para escalar leituras
Scalability
Similaridades entre MongoDB e MySQL
● Mas esses bancos de dados não são completamente diferentes
● Eles compartilham
○ Segurança
○ Indexes
○ Multi usuário/multi threaded
○ Concorrência
Similaridades
● Database terms and concept mapping
Similaridades
MySQL MongoDB
Database Database
Table Collection
Row Document
Column Key
Security:
● Diferentes níveis de segurança
● Roles
Diferentes storage engines
● Ambos MongoDB e MySQL compartilham a ideia de storage plugável
● Os storages para MongoDB são: WiredTiger, MMAPv1, InMemory, RocksDB
● MySQL são: InnoDB, MyISAM, MyRocks, Memory, and many more
Similaridades
Query Language
● Vamos comparar brevemente os padrões de linguagem entre o MongoDB e o
SQL,
○ Criar banco de dados
○ Criar tabela
○ Fazer um insert
○ Fazer um select
○ Como executar update ou delete
○ Joins (SQL) / $lookup mongodb
Query Language
Query Language - MySQL
Query Language - MySQL
Query Language - MongoDB
● NoSQL
● CQL
● Graph
● Javascript
"NoSQL" Query Language
Segurança
● Ambos os bancos de dados contém controle de usuário e de roles e
bibliotecas para integração com LDAP, certificados.
● Percona Server for MongoDB e Percona Server for MySQL oferecem
melhorias como auditoria em sua versão free.
Segurança
● MongoDB contém controle por roles desde a versão 2.4
● Atualmente não é possível limitar acesso a campos de forma fácil.
● Plugin de auditoria (enterprise)
Segurança - MongoDB
● MySQL contém roles a partir da versão 8.0
● Pode-se setar permissões a nível de banco de dados e colunas
● Podemos controlar actions em tabelas por meio de grants de:
○ CREATE
○ SELECT
○ INSERT
○ UPDATE
○ ...
● MySQL enterprise contém
○ LDAP authentication
○ Encryption
○ Audit
Segurança - MySQL
Comparando Performance
Não existe como comparar a performance de ambos diretamente.
Cada banco de dados tem sua particularidade
Documentos são mais fáceis de trafegar, não existe o custo de um join. Lookups
demoram uma eternidade em MongoDB.
MySQL por outro lado faz joins com maestria e anos de experiência.
Estamos comparando prego e parafuso aqui
Performance
Conceitos genéricos para uma boa performance.
● Manter índices corretamente;
● Particionar ou excluir dados antigos para manter o banco de dados pequeno;
● Leia somente o necessário;
● Utilize discos rápidos quando nem todo o banco de dados cabe na RAM;
● Mais núcleos favorece queries em paralelo
Performance
Qual é melhor?
● Não existe uma resposta correta, apesar do MongoDB ser mais difundido em
startups e empresas que utilizam metodologia ágeis MySQL - E relacionais -
são muito fortes quando transações são requeridas
https://www.percona.com/about-percona/customers
https://www.percona.com/about-percona/case-studies
Então qual é melhor?
Q&A
Q&A

Mais conteúdo relacionado

Mais procurados

MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
Cihan Özhan
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18
Derek Downey
 
Sharding Methods for MongoDB
Sharding Methods for MongoDBSharding Methods for MongoDB
Sharding Methods for MongoDB
MongoDB
 
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Frederic Descamps
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
Marcos Luiz Lins Filho
 
Intro ProxySQL
Intro ProxySQLIntro ProxySQL
Intro ProxySQL
I Goo Lee
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
Severalnines
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP Theorem
Rahul Jain
 
InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
Mark Swarbrick
 
SOLID & Design Patterns
SOLID & Design PatternsSOLID & Design Patterns
SOLID & Design Patterns
Grokking VN
 
MongoDB Memory Management Demystified
MongoDB Memory Management DemystifiedMongoDB Memory Management Demystified
MongoDB Memory Management DemystifiedMongoDB
 
MongoDB Administration 101
MongoDB Administration 101MongoDB Administration 101
MongoDB Administration 101
MongoDB
 
Sizing MongoDB Clusters
Sizing MongoDB Clusters Sizing MongoDB Clusters
Sizing MongoDB Clusters
MongoDB
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
Gabriel Alves Scavassa
 
Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB
Amazon Web Services
 
MongoDB - Aggregation Pipeline
MongoDB - Aggregation PipelineMongoDB - Aggregation Pipeline
MongoDB - Aggregation Pipeline
Jason Terpko
 
Capacity Planning For Your Growing MongoDB Cluster
Capacity Planning For Your Growing MongoDB ClusterCapacity Planning For Your Growing MongoDB Cluster
Capacity Planning For Your Growing MongoDB Cluster
MongoDB
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity Planning
MongoDB
 
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB DayGetting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Amazon Web Services Korea
 

Mais procurados (20)

MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18
 
Sharding Methods for MongoDB
Sharding Methods for MongoDBSharding Methods for MongoDB
Sharding Methods for MongoDB
 
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
Intro ProxySQL
Intro ProxySQLIntro ProxySQL
Intro ProxySQL
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
 
What is NoSQL and CAP Theorem
What is NoSQL and CAP TheoremWhat is NoSQL and CAP Theorem
What is NoSQL and CAP Theorem
 
InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
 
SOLID & Design Patterns
SOLID & Design PatternsSOLID & Design Patterns
SOLID & Design Patterns
 
MongoDB Memory Management Demystified
MongoDB Memory Management DemystifiedMongoDB Memory Management Demystified
MongoDB Memory Management Demystified
 
MongoDB Administration 101
MongoDB Administration 101MongoDB Administration 101
MongoDB Administration 101
 
Sizing MongoDB Clusters
Sizing MongoDB Clusters Sizing MongoDB Clusters
Sizing MongoDB Clusters
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB
 
MongoDB - Aggregation Pipeline
MongoDB - Aggregation PipelineMongoDB - Aggregation Pipeline
MongoDB - Aggregation Pipeline
 
Capacity Planning For Your Growing MongoDB Cluster
Capacity Planning For Your Growing MongoDB ClusterCapacity Planning For Your Growing MongoDB Cluster
Capacity Planning For Your Growing MongoDB Cluster
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity Planning
 
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB DayGetting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
 

Semelhante a SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos - Adamo Tonete

NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
Suzana Viana Mota
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdf
Eizo Edson
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
Rodrigo Aurélio
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Christiano Anderson
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | Florianópolis
Jefferson Martins de Andrade
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDBDavid de Lucca
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
Luiz Guilherme Sucupira
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
Meritt - Cada Aluno é Único
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
João Helis Bernardo
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
Flávio Lisboa
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
Fernando Rizzato
 
mongodb.pdf
mongodb.pdfmongodb.pdf
mongodb.pdf
NlioCorreia
 
Mongo db
Mongo dbMongo db
Mongo db
Edmilson Neto
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Ambiente Livre
 
Apresentação new sql
Apresentação new sqlApresentação new sql
Apresentação new sql
w_barros
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
Regis Magalhães
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
Luiz Henrique Zambom Santana
 
Comparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacionalComparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacional
Congresso Catarinense de Ciências da Computação
 

Semelhante a SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos - Adamo Tonete (20)

NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdf
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | Florianópolis
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
mongodb.pdf
mongodb.pdfmongodb.pdf
mongodb.pdf
 
Mongo db
Mongo dbMongo db
Mongo db
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Apresentação new sql
Apresentação new sqlApresentação new sql
Apresentação new sql
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
 
Comparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacionalComparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacional
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
iMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
iMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
iMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
iMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
iMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
iMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
iMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
iMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
iMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
iMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
iMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
iMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
iMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
iMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
iMasters
 
Clean Architecture - Elton Minetto
Clean Architecture - Elton MinettoClean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
iMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 
Clean Architecture - Elton Minetto
Clean Architecture - Elton MinettoClean Architecture - Elton Minetto
Clean Architecture - Elton Minetto
 

SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos - Adamo Tonete

  • 1. SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos
  • 2. Agenda ● Definição de MongoDB e MySQL ● Conceitos de bancos relacionais e não relacionais ● Principais diferenças entre o MySQL e o MongoDB ● Similaridades ● Query Language; ● Comparação de performance ● Segurança; ● Melhores use cases ● Q&A
  • 3. Sobre mim ● Adamo Tonete ○ MongoDB Support Engineer @Percona DBA Easy Taxi /adamotonete
  • 5. O que é MongoDB ● Document Oriented Database ● NoSQL ● Open source ● Banco de Dados NoSQL mais popular atualmente ● Alta performance
  • 6. ● Relational Database Management System ● Segundo banco de dados mais popular de acordo com DBEngines ● Feito para ser utilizado com diferentes storage engines ● Suporta diferentes topologias de replicação O que é MySQL
  • 7. Conceitos de NoSQL e Relacional
  • 8. Conceito de Banco de Dados Um gerenciador de banco de dados é organizado da seguinte maneira ● Dados ● Schema ● Tabelas ● Query Language ● Relatórios ● Views ● Other elements.
  • 9. Conceito de Banco de Dados Relacionais ● Foram escritos na época de 1970 ● Linhas e atributos definem relações entre tabelas ● Dados Normalizados ● SQL Language ● Procedures ● Triggers ● Foreign keys ● Transações - ACID
  • 10. Conceitos de Bancos de Dados não relacionais ● Primeiros NoSQL surgiram no começo dos anos 2000s; ● Conceito de não relacional, sem tabelas ou relações entre elas; ● Não utiliza padrão T-SQL ● Criado para encaixar-se melhor com linguagens mais novas ● De fácil desenvolvimento
  • 11. Principais diferenças entre MongoDB e MySQL
  • 12. Diferenças entre MongoDB e MySQL ● Algumas das features que vamos comparar ○ Normalização ○ Transações ○ Linguagem de consulta ○ Forma de salvar dados no disco (storage engine) ○ Diferenças de indexes ○ Modo de escalar e distribuir o banco de dados (HA)
  • 13. MongoDB e MySQL são diferentes? ● NoSQL e SQL não são inimigos ○ Eles são complementos um dos outros ● Enquanto o MongoDB é um banco de dados relativamente novo O MySQL já é um banco de dados relacional consolidado no mercado. ● Para alguns use-cases MongoDB como principal Banco de dados não é a melhor coisa a se fazer. ● No entanto, o MongoDB pode oferecer uma facilidade muito grande para startups e metodologias ágeis.
  • 14. MongoDB e MySQL são diferentes? ● Comparando distribuição de dados ○ MongoDB é projetado para manipular altas cargas de dados ○ MySQL pode ser shardeado utilizando alguns add-ons ○ MySQL foi a princípio desenvolvido para funcionar numa máquina apenas
  • 15. Normalização ● MongoDB sugere boas práticas para salvar seus dados mas não o força a fazer isso. ● MySQL por outro lado força um schema pré-definido onde na maioria dos bancos é utilizado a 3 forma normal para evitar duplicação de dados. Normalização
  • 17. { "_id" : ObjectId("507f1f77bcf86cd799439011"), "studentID" : 100, "firstName" : "Jonathan", "middleName" : "Eli", "lastName" : "Tobin", "classes" : [ { "courseID" : "PHY101", "grade" : "B", "courseName" : "Physics 101", "credits" : 3 }, { "courseID" : "BUS101", "grade" : "B+", "courseName" : "Business 101", "credits" : 3 } ] Normalização
  • 18. ACID ● O que é ACID ○ Atomicidade ○ Consistência ○ Isolamento ○ Durabilidade
  • 19. ● Como o ACID é representado no MySQL. ○ Atomicidade ■ Se autocommit=ON (default), todo comando é salvo imediatamente ■ Se não, COMMIT or ROLLBACK deve ser usado explicitamente ○ Consistencia ■ Utiliza doublewrite e crash recovery ○ Isolation ■ Diferente níveis de isolamento, RC, RU ○ Durabilidade ■ Existem várias configurações, sendo as principais innodb_flush_log_at_trx_commit and sync_binlog ACID
  • 20. ● Como ACID é representada no MongoDB? ○ Atomicidade ■ Documento é atômico ○ Consistência ■ primário = garantida ■ secondários = depende do write Concern ○ Isolamento ■ Não é 100% podendo forçar com $snapshot ○ Durabilidade ■ configurável w:majority and/or j:true ACID
  • 21. CAP theorem - MongoDB ● Teorema CAP foi proposto por Eric Allen em 2000 ● Um sistema distribuído não pode ter 3 garantias ao mesmo tempo. Uma deve ser sacrificado
  • 22. CAP theorem - MongoDB A PC ● Consistência ● Disponibilidade ● Tolerancia a Particionamento Todos receberão a mesma resposta independente do nó.
  • 23. ● Consistência ● Disponibilidade ● Tolerancia a Particionamento O sistema sempre responde os requests CAP theorem - MongoDB A PC
  • 24. CAP theorem - MongoDB A PC ● Consistência ● Disponibilidade ● Tolerância a Particionamento Sistema pode se recuperar de um erro de rede ou máquina
  • 25. CAP theorem - MongoDB A PC Relacional MySQL Postgres Cassandra Riaki MongoDB Redis
  • 26. ● MySql contem tabelas pré definidas. ● Cada coluna pode ter um e somente um tipo de dados pre definido. ● Limites de tamanos de linhas/colunas ○ Colunas máximas numa tabela: 4096 ● SQL é uma linguagem declarativa ● Diversos conectores ○ https://www.mysql.com/products/connector/ Salvando e consultando dados
  • 27. Salvando e consultando dados ● Diferentemente do MySQL o MongoDB não tem um schema pre-definido. ● Os documentos podem ter diferentes valores para as mesmas colunas {x : 1, y : ['test']} e {x : 'percona', y : ISODate('2018-01-01')} São validos.
  • 28. ● MongoDB não utiliza-se de normalização, ao contrario de boas praticas do MySQL ● Todos os documentos devem conter o máximo de informação possível pois não há joins. ● Tamanho máximo de um documento é de 16MB Salvando e consultando dados
  • 29. ● Replica-sets ● Cluster e shards ● Master Slave Comparando Topologias
  • 30. ● O que é escalabilidade? ○ "Habilidade de adicionar mais recursos" ● Scale up (a.k.a.: verticalmente) ○ Melhorar hardware (máquina maior) ● Scale out (a.k.a.: horizontalmente) ○ Add mais instâncias Escalabilidade
  • 31. ● MongoDB: ○ Utiliza sharding para escalar escritas ○ Utiliza secundários para escalar leituras ● MySQL: ○ Pode utilizar particionamento e "sharding" para escalar escritas (mas não tão fácil quanto o mongodb) ○ Utiliza escravos (secundários) para escalar leituras Scalability
  • 33. ● Mas esses bancos de dados não são completamente diferentes ● Eles compartilham ○ Segurança ○ Indexes ○ Multi usuário/multi threaded ○ Concorrência Similaridades
  • 34. ● Database terms and concept mapping Similaridades MySQL MongoDB Database Database Table Collection Row Document Column Key
  • 35. Security: ● Diferentes níveis de segurança ● Roles Diferentes storage engines ● Ambos MongoDB e MySQL compartilham a ideia de storage plugável ● Os storages para MongoDB são: WiredTiger, MMAPv1, InMemory, RocksDB ● MySQL são: InnoDB, MyISAM, MyRocks, Memory, and many more Similaridades
  • 37. ● Vamos comparar brevemente os padrões de linguagem entre o MongoDB e o SQL, ○ Criar banco de dados ○ Criar tabela ○ Fazer um insert ○ Fazer um select ○ Como executar update ou delete ○ Joins (SQL) / $lookup mongodb Query Language
  • 40. Query Language - MongoDB
  • 41. ● NoSQL ● CQL ● Graph ● Javascript "NoSQL" Query Language
  • 43. ● Ambos os bancos de dados contém controle de usuário e de roles e bibliotecas para integração com LDAP, certificados. ● Percona Server for MongoDB e Percona Server for MySQL oferecem melhorias como auditoria em sua versão free. Segurança
  • 44. ● MongoDB contém controle por roles desde a versão 2.4 ● Atualmente não é possível limitar acesso a campos de forma fácil. ● Plugin de auditoria (enterprise) Segurança - MongoDB
  • 45. ● MySQL contém roles a partir da versão 8.0 ● Pode-se setar permissões a nível de banco de dados e colunas ● Podemos controlar actions em tabelas por meio de grants de: ○ CREATE ○ SELECT ○ INSERT ○ UPDATE ○ ... ● MySQL enterprise contém ○ LDAP authentication ○ Encryption ○ Audit Segurança - MySQL
  • 47. Não existe como comparar a performance de ambos diretamente. Cada banco de dados tem sua particularidade Documentos são mais fáceis de trafegar, não existe o custo de um join. Lookups demoram uma eternidade em MongoDB. MySQL por outro lado faz joins com maestria e anos de experiência. Estamos comparando prego e parafuso aqui Performance
  • 48. Conceitos genéricos para uma boa performance. ● Manter índices corretamente; ● Particionar ou excluir dados antigos para manter o banco de dados pequeno; ● Leia somente o necessário; ● Utilize discos rápidos quando nem todo o banco de dados cabe na RAM; ● Mais núcleos favorece queries em paralelo Performance
  • 50. ● Não existe uma resposta correta, apesar do MongoDB ser mais difundido em startups e empresas que utilizam metodologia ágeis MySQL - E relacionais - são muito fortes quando transações são requeridas https://www.percona.com/about-percona/customers https://www.percona.com/about-percona/case-studies Então qual é melhor?
  • 51. Q&A
  • 52. Q&A

Notas do Editor

  1. AT
  2. AG give brief summary on each point
  3. AT/AG
  4. AT
  5. AG RDBMS -> can be thought of in terms of "strongly typed" vs "loosely typed" in Mongo all data is represented in terms of tuples, grouped into relations popularity doesn't mean it's better or worse, but it gives a good idea on adoption (maturity, "battle" tested, etc) and potentially more sources of information from which to learn from SEs give flexibility, but also add more complexity there are many options to choose from, so it can be
  6. AG
  7. Atomicidade Consistencia Isolamento Durabilidade
  8. AT (we are going to discuss CAP it later) Document Key Value Time series Graphs database Strict schema
  9. *** Distribiut AT
  10. AT
  11. AT/AG Explain that there are technologies on MySQL that can support writes in many nodes, but they have their disadvantages: multimaster replication and PXC
  12. AG
  13. AG
  14. Lemme now shoiou. What a document looks like in mongodb. AT
  15. transactions should function as a single, indivisible unit of work the database should always move from one consistent state to the next the results of a transaction are (usually) invisible to other transactions until the transaction is finished once committed, a transaction's changes are permanent
  16. AGUSTIN we can use START TRANSACTION or BEGIN if autocommit=ON and we want multi-statement transactions interesting to mention that the manual talks about "losing up to one second worth of transactions"... but how many transactions can that be?
  17. AGUSTIN
  18. 3 minutes - Adamo CAP theorem was proposed by Eric Allen in 2000 2 out of 3 guarantess One must be sacrificed Availability replication of datas acrross machines Consistences Avaiability Partition Tolerance = Cassandra Consistence Partition Tolerance = MongoDB Consistence Availability = Normal Databases Ca doesn't have resilience https://www.youtube.com/watch?v=k1dtA14EYrk
  19. 3 minutes - Adamo CAP theorem was proposed by Eric Allen in 2000 2 out of 3 guarantess One must be sacrificed Availability replication of datas acrross machines Consistences Avaiability Partition Tolerance = Cassandra Consistence Partition Tolerance = MongoDB Consistence Availability = Normal Databases Ca doesn't have resilience https://www.youtube.com/watch?v=k1dtA14EYrk
  20. 3 minutes - Adamo CAP theorem was proposed by Eric Allen in 2000 2 out of 3 guarantess One must be sacrificed Availability replication of datas acrross machines Consistences Avaiability Partition Tolerance = Cassandra Consistence Partition Tolerance = MongoDB Consistence Availability = Normal Databases Ca doesn't have resilience https://www.youtube.com/watch?v=k1dtA14EYrk
  21. 3 minutes - Adamo CAP theorem was proposed by Eric Allen in 2000 2 out of 3 guarantess One must be sacrificed Availability replication of datas acrross machines Consistences Avaiability Partition Tolerance = Cassandra Consistence Partition Tolerance = MongoDB Consistence Availability = Normal Databases Ca doesn't have resilience https://www.youtube.com/watch?v=k1dtA14EYrk
  22. 3 minutes - Adamo CAP theorem was proposed by Eric Allen in 2000 2 out of 3 guarantess One must be sacrificed Availability replication of datas acrross machines Consistences Avaiability Partition Tolerance = Cassandra Consistence Partition Tolerance = MongoDB Consistence Availability = Normal Databases Ca doesn't have resilience https://www.youtube.com/watch?v=k1dtA14EYrk
  23. Agustin InnoDB columns -> 1,000 InnoDB row length -> "slightly less" than half a page (by default a page is 16Kb) talk about query optimizer a bit
  24. AT 30 seconds to 1 minute Talk about query optimizer How the indexes behaves when there are different data types
  25. AT
  26. X
  27. For most of the cases mongodb will prefer scale out, which is not the same for mysql X
  28. X Machine costs If we want to scale MongoDB, we can simple add more machines For MySQL this is not always true Compare mongodb and MySQL ways to scale out and UP
  29. AT Several other databases concepts/tools like backups, restore, export import
  30. AT
  31. AG/AT User roles only on MySQL 8.0+
  32. AG 30 seconds to 1 minute
  33. AG
  34. AG
  35. AG
  36. AT
  37. Standard for nosql databases AT
  38. AT
  39. AT
  40. AG
  41. X
  42. X
  43. MYSQL vs MongoDB - AG/AT Come with examples here like A bank will never use mongodb as the main financial database Mention that our customers use both Some for web and some for financial stuff like opensky for example
  44. 5 minutes