Programas MySQL

Propaganda
MySQL Consulting:
Introdução
ao MySQL
Your Fast Track to Better Performance,
Availability and Scalability
Leandro Morgado
June 3, 2008
[email protected]
Josh Chamas
Director, Professional Services
www.mysql.com
SUN CONFIDENTIAL
Copyright 2008
Agenda
• História e Evolução
• Arquitectura
• Storage Engines
• Programas MySQL
• Replicação e Backups
SUN CONFIDENTIAL
Copyright 2008
História e Evolução
• RDBMS inicialmente desenvolvido por Michael "Monty" Widenius e
David Axmark durante o final dos 90s
• Empresa MySQL AB criada na Suécia em 1995
• Datas Lançamento:
– 3.23 - Jan 2001
– 4.0 - Mar 2003 (unions)
– 4.1 - Oct 2004 (Btrees, subqueries, prepared statements)
– 5.0 - Oct 2005 (cursors, stored procedures, triggers, views)
– 5.1 - Nov 2008 (event scheduler, partitioning, plugin API, Row Based
Replication, server log tables)
– 5.4 - Abr 2009 (performance improvements backported from 6.0, SMP
scaling, subquery optimizations, faster joins, etc)
• A MySQL AB foi comprada pela Sun Microsystems em Feb 2008 por
USD $1Billion
SUN CONFIDENTIAL
Copyright 2008
História e Evolução
• Duas versões: Community Server e Enterprise Server
• Ultimas versões General Avalaible (GA) são 5.1.36 Community e
5.1.36(MRU)/5.1.31sp1 (QSP) Enterprise
• Disponível em varias arquitecturas 32bit e 64bit: Linux, Windows,
Solaris, FreeBSD, Mac OS X, HP-UX, IBM AIX e i5/OS
• Codigo fonte disponível (GPL)
• Usado em sites de grande escala como Google, Wikipedia e Facebook
• Várias opcções de contractos de suporte (Basic, Silver, Gold, Platinum)
SUN CONFIDENTIAL
Copyright 2008
Arquitectura
SUN CONFIDENTIAL
Copyright 2008
Arquitectura
• Modelo Cliente / Servidor via TCP/IP, Unix Sockets, Windows Shared
Memory e Windows Named Pipes
• Connectors permitem aceder ao servidor através de diversas
linguagens e protocolos: C/C++, JDBC, .Net, ODBC, PHP, Perl, Python,
Ruby, etc.
• Primeira fase é efectua a conecção, autenticação, privilégios
• Antes de se fazer o parsing a uma Query SQL, é verificada a Query
Cache (em memória)
• Query é então decomposta e passa pelo Query Optimizer que decide
qual o melhor Execution Plan
• Nesta altura verifica-se também os privilégios a nível de base de
dados, tabelas e colunas.
• O servidor pede então os dados à Storage Engine da tabela através de
uma API bem definida.
• Finalmente são gravados logs (binary, slow, general, etc)
SUN CONFIDENTIAL
Copyright 2008
Storage Engines
• Uma storage engine é uma implementação especifica para a
armezanação dos dados quer seja em disco, memória ou /dev/null
• MyISAM é a storage engine por omissão:
– Muito rápida e adequada para workloads com grande % de reads
– Table locking
– Não transacional (nem MVCC)
– Não é “crash-safe”
– Suporta tables comprimidas com myisampack
– Guarda os dados em .frm, .MYD e .MYI
– FullText Indexes
– Suporta GIS
SUN CONFIDENTIAL
Copyright 2008
Storage Engines
• InnoDB
– ACID a 100% - crash safe
– Row level locking
– Mais pesada que MyISAM mas mais adequada a workloads mistas read/write
– Transacional
– Guarda dados num tablespace partilhado ou por tabela
– .frm, ibdata* e ib_logfile0|1
• Merge
– Permite unir duas tabelas de forma a serem vistas como uma apenas
– Mais utilizado antes de existir partitioning
– Cenários de log file antigas → drop tabela antiga
SUN CONFIDENTIAL
Copyright 2008
Storage Engines
• Memory
– Muito rápida pois está tudo em memória
– Volátil
– Boa para tabelas de contadores, dados temporários
• Federated
– Permite aceder a uma tabela num servidor remoto como se fosse local
• Archive
– Guarda grandes volumes de dados de forma eficiente mas não tem indexes
• CSV
– Grava dados em Comma Separated Values
• Blackhole
– Não faz nada, apenas escreve para o binary log
SUN CONFIDENTIAL
Copyright 2008
Programas MySQL
• Comunicação via API (local e remota):
– mysql
– mysqldump
– mysqladmin
– mysqlimport
– mysqlcheck
– mysqlshow
– mysqlslap
• Comunicação directa no file system (local):
– mysqlhotcopy
– myisamchk
– myisampack
– mysqldumpslow
– mysqlbinlog
SUN CONFIDENTIAL
Copyright 2008
Programas MySQL
• Servidor, auxilares e outros:
– mysqld, mysqld-nt
– mysqld_safe
– mysqld_multi
– perror
– mysqlbug
• Ferramentas Gráficas (GUI Tools) :
– MySQL Administrator
– MySQL Query Browser
– MySQL Migration Toolkit
– MySQL Workbench
– MySQL Enterprise Monitor (MEM) e Query Analyzer (QUAN)
SUN CONFIDENTIAL
Copyright 2008
Programas MySQL
SUN CONFIDENTIAL
Copyright 2008
Replicação e Backups
• Replicação assincrona via master (writes) / slave (reads)
• Permitir escalar tendo nodos só de leitura nos slaves
• Permitir fazer backup aos slaves sem downtime no master
• Replicação sincorona apenas possível com MySQL Cluster (NDB)
SUN CONFIDENTIAL
Copyright 2008
MySQL Consulting:
Obrigado!
Your Fast Track to Better Performance,
Availability and Scalability
June 3, 2008
Questões?
Josh Chamas
Director, Professional Services
[email protected]
SUN CONFIDENTIAL
Copyright 2008
Download