Things are getting worse please send chocolate!

Werbung
MySQL
[ˌmaɪɛskjuːˈɛl]
e
s
r
o
w
g
n
i
t
t
e
g
e
r
a
s
g
n
i
!
e
Th
t
a
l
o
c
o
h
c
d
n
e
s
e
s
a
e
l
p
MySQL
•
Chronologie
•
1994 - 2008 MySQL AB, Schweden
•
2008 - 2010 Sun Microsystems, USA
•
•
2008 - Fork in die MariaDB
2010 - Oracle, USA
MySQL
•
Historie
•
1994 von Ulf Michael Widenus
gegründet.
•
Vorläufer war das UNIREG und mSQL
Projekt.
•
Name besteht aus My (Name seiner
Tochter) und SQL.
•
Startet mit Version 3.1 und einer
reduzierten, aber dadurch schnellen
SQL Unterstützung.
MySQL
•
Historie
•
Zur Zeit seiner Entstehung gab es
kaum freie und frei verwendbare
Datenbanksysteme.
•
Die gute Integration von MySQL in
PHP brachte dieses Gespann mit
Linux und Apache zu großer
Verbreitung.
•
Der LAMP Stack war geboren.
LAMP
Linux Apache MySQL PHP
MySQL
•
rDBMS?
•
relationelles Datenbank
Management System
•
Schnell Rein & Raus und bitte
sortiert.
•
Ach ja, Ausfallsicherheit und
Gruppierung bitte auch.
•
Und verteilt, sowie komplexe
Abfragen bitte!
MySQL
•
SQL
•
Standard Query Language – die
Sprache der meisten rDBMS.
•
Nur die Anwender tun sich schwer mit
ihr ;)
•
SELECT p.ID AS 'id', p.post_title AS 'title', p.post_date AS
'date', p.post_author AS 'uid' , p.comment_count AS
'comment_count' , v.pageview s AS 'pageviews' FROM
wp_popularpostsdata v LEFT JOIN wp_posts p ON
v.postid = p.ID WHERE p.post_type IN(‘post','page') AND
p.post_password = '' AND p.post_status = 'publish'
ORDER BY pageviews DESC LIMIT 3;
# Time: 8m 31s 22ms
MySQL
•
Verarbeitung einer Anfrage
•
Query-Cache
hatte ich die gleiche Anfrage schon, kann
sie direkt aus dem Cache beantwortet
werden.
•
Parsing
Ist die Anfrage überhaupt syntaktisch
korrekt?
•
Optimierung
hier wird mit Heuristiken versucht die
Datenmenge kleinzuhalten. Menschliche
Optimierer sind aber Gold wert.
MySQL
•
Speicherengines
•
BDB
•
MyISAM
•
FEDERATED
•
InnoDB
•
ARCHIVE
•
MERGE
•
CSV
•
MEMORY (HEAP)
•
BLACKHOLE
•
EXAMPLE
•
NDB
einfaches Client Server Modell
DB1
Server
Client
Client Server Modell
DB2
DB1
DB3
Server
Client
Client
Client
Dual-Head Replication
DB2
DB1
DB2
DB3
Server
Client
DB1
Server
Client
Client
DB3
MySQL Cluster
DB2
DB1
DB3
DB2
Server
DB1
DB3
Client
Server
virtuelle
IP
Server
DB2
DB1
Mgmt
Server
DB3
DB2
DB1
Mgmt
Client
Client
DB3
MySQL
Cluster
•
Server inside
•
SQL Knoten
•
Datenknoten
•
Managementknoten
MySQL
Cluster
•
Ausfallsicherheit
•
Synchrone Replikation
•
Automatischer Failover
•
Shared-Nothing-Architektur, keine
singuläre Fehlerquelle
•
Geographische Replikation
MySQL
Cluster
•
Im laufenden Betrieb
•
Schema-Aktualisierung
•
Skalierung durch Hinzunahme von
weiteren Knoten
•
Upgrades von OS und Applikationen
•
Backup
MySQL
•
Einsatzgebiete
•
Blogs, CMS, Websites
•
Wordpress, Drupal, Joomla, Koken, …
•
MySQL wird unter anderem verwendet
von Flickr, Nokia.com, YouTube,
Google, Facebook und Twitter.
•
Daneben wird MySQL in vielen
Produkten als eingebettetes
Datenbanksystem eingesetzt.
MySQL
•
Problemgebiete
•
Der Query-Cache hält Entwickler davon
ab, saubere Indices und “Materialized
Views” zu benutzen.
•
Die durchaus halsbrecherische Akrobatik
um wirklich UTF-8 Daten sauber zu
speichern und auch wieder darzustellen.
•
Quick-N-Dirty Kultur bei der
Implementierung von vielen
Webprojekten.
•
Quo vadis Oracle?
Fragen?
!
Mathias Brandstetter
Trend Micro Deutschland
GmbH
!
[email protected]
!
http://www.linuxpinguin.de
MySQL
[ˌmaɪɛskjuːˈɛl]
e
s
r
o
w
g
n
i
t
t
e
g
e
r
a
s
g
n
i
!
e
Th
t
a
l
o
c
o
h
c
d
n
e
s
e
s
a
e
l
p
Herunterladen