Kristian Köhntopp

Werbung
MySQL 5.1
Kristian Köhntopp
Freitag, 4. Dezember 2009
Was ist neu?
•
Neues InnoDB
•
Neue Replikation
•
Neues Logging
•
Event Scheduler
•
Partitions
•
INFORMATION_SCHEMA
•
XML Functions
Freitag, 4. Dezember 2009
Was ist neu?
•
Neues InnoDB
•
Neue Replikation
•
Neues Logging
•
Event Scheduler
•
Partitions
•
INFORMATION_SCHEMA
•
XML Functions
Freitag, 4. Dezember 2009
InnoDB
•
auto_increment Skalierungsprobleme
•
Internes Locking verbessert
•
mehr Controls
•
Adaptive Hash Index, File I/O Threads
•
Cardinality Index Fix
•
InnoDB Plugin
Freitag, 4. Dezember 2009
auto_increment
•
set global innodb_autoinc_lock_mode =
•
0 -- traditional
•
1 -- consecutive, recommended
•
2 -- interleaved, RBR, fastest
•
Freitag, 4. Dezember 2009
Gleicher Wert in einer Replication
Domain!
InnoDB Plugin
•
Unabhängig vom Server Release
•
Schneller neuere Funktionalität
•
Derzeit einige Funktionen nur im Plugin
verfügbar
•
Bestimmte Table Formats, Midpoint
Insertion LRU, I/O Controls, etc.
Freitag, 4. Dezember 2009
Was ist neu?
•
Neues InnoDB
•
Neue Replikation
•
Neues Logging
•
Event Scheduler
•
Partitions
•
INFORMATION_SCHEMA
•
XML Functions
Freitag, 4. Dezember 2009
Replication
•
Row Based Replication (RBR)
•
Sicher gegen Nichtdeterminismus
•
Schneller und besser skalierbar
•
Mehr Datenvolumen
•
Freitag, 4. Dezember 2009
SBR, RBR und MIXED
Nichtdeterminismus
•
DELETE FROM t LIMIT 10
•
•
Kein ORDER BY
INSERT INTO t VALUES ( RAND() * 10 )
•
Mit Tricks replizierbar
•
Leicht zerbrechlich
•
ALTER TABLE t ENGINE = InnoDB;
•
Freitag, 4. Dezember 2009
Massiv Slave Lag
RBR
•
binlog-format = ROW
•
•
Freitag, 4. Dezember 2009
oder MIXED
mysqlbinlog --verbose file
mysqlbinlog
•
Freitag, 4. Dezember 2009
# at 451
#091203 15:47:01 server id 1
end_log_pos 451 Table_map: `test`.`h`
mapped to number 26
BINLOG '….'
### INSERT INTO test.h
### SET
### @1='123'
Konfiguration
•
binlog-format = ROW
•
binlog-row-event-max-size = ...
•
expire_logs_days = …
•
slave_exec_mode = IDEMPOTENT
•
Freitag, 4. Dezember 2009
oder STRICT
Fallen
•
WHERE @@server_id <> …
•
•
geht nicht mehr
binlog-do-db und replicate-do-db
•
Freitag, 4. Dezember 2009
geändertes Verhalten, noch wirrer
Doof
•
Freitag, 4. Dezember 2009
Noch immer keine Time Delayed Slaves
Was ist neu?
•
Neues InnoDB
•
Neue Replikation
•
Neues Logging
•
Event Scheduler
•
Partitions
•
INFORMATION_SCHEMA
•
XML Functions
Freitag, 4. Dezember 2009
Logging
•
General Log, Slow Log:
•
Zur Laufzeit definierbar
•
Ziel: File oder Tabelle
•
Error Log
•
Freitag, 4. Dezember 2009
Ziel: File oder Syslog
Logging
•
set global log_output = FILE,TABLE;
•
set global general_log = ON;
•
set global general_log_file = …;
•
set global slow_query_log = ON;
•
set global slow_query_log_file = … ;
•
Freitag, 4. Dezember 2009
set session sql_log_off = …;
Slow Query Log
•
set global slow_query_time = …;
•
Mikrosekunden, Limit 0
•
Nicht bei Log in Table
•
set global min_examined_row_limit = …;
•
Freitag, 4. Dezember 2009
Verhindert Slow Log Kontamination.
General Log
•
Freitag, 4. Dezember 2009
Option --log nun deprecated
Logs in Tabellen
•
Langsam, nicht verwenden
•
Per Default CSV Tabellen
•
Optional MyISAM Tabellen
•
Keine PARTITIONS, auch sonst keine
Tricks
Freitag, 4. Dezember 2009
Error Log
•
Neue Option --syslog
•
Freitag, 4. Dezember 2009
Im Grunde ein alter Debian-Patch
Was ist neu?
•
Neues InnoDB
•
Neue Replikation
•
Neues Logging
•
Event Scheduler
•
Partitions
•
INFORMATION_SCHEMA
•
XML Functions
Freitag, 4. Dezember 2009
Events
•
Temporal Triggers
•
Neues Privileg EVENT
•
CREATE|ALTER|DROP EVENT
•
SHOW EVENTS
•
SHOW CREATE EVENT
•
mysql.event, I_S.EVENTS
Freitag, 4. Dezember 2009
CREATE EVENT
•
Freitag, 4. Dezember 2009
CREATE EVENT name
IF NOT EXISTS
ON SCHEDULE sched
ON COMPLETION PRESERVE
ENABLE|DISABLE|DISABLE ON SLAVE
DO
stmt
Schedules
•
AT now() + INTERVAL … + INTERVAL …
•
EVERY interval
STARTS …
ENDS ...
Freitag, 4. Dezember 2009
Scheduler
•
Freitag, 4. Dezember 2009
set global event_scheduler = on
Was ist neu?
•
Neues InnoDB
•
Neue Replikation
•
Neues Logging
•
Event Scheduler
•
Partitions
•
INFORMATION_SCHEMA
•
XML Functions
Freitag, 4. Dezember 2009
Partitions
•
Ranges vs. Hashes
•
RANGE/LIST
•
HASH/KEY (auch für Subpartitions)
•
ALTER TABLE Erweiterungen
•
Änderungen im Optimizer
Freitag, 4. Dezember 2009
Definition RANGE
•
Freitag, 4. Dezember 2009
CREATE TABLE t ( … )
ENGINE = …
PARTITION BY RANGE (col) (
PARTITION name
VALUES LESS THAN …
PARTITION name2
VALUES LESS THAN MAXVALUE
);
Definition LIST
•
…
PARTITION BY LIST (i) (
PARTITION name VALUES IN (…)
);
•
ERROR 1525 (HY000): Table has no
partition for value ...
Freitag, 4. Dezember 2009
Definition HASH/KEY
•
…
PARTITION BY HASH ( col )
PARTITIONS n
•
…
PARTITION BY KEY
PARTITIONS n
Freitag, 4. Dezember 2009
Dateisystem
•
Freitag, 4. Dezember 2009
-rw-rw----rw-rw----rw-rw----rw-rw----
1
1
1
1
_mysql
_mysql
_mysql
_mysql
admin 98304 Dec 3 16:13 p#P#p0.ibd
admin 98304 Dec 3 16:13 p#P#p1.ibd
admin 8616 Dec 3 16:13 p.frm
admin
44 Dec 3 16:13 p.par
ALTER TABLE
•
ALTER TABLE P
•
DROP PARTITION name
•
ADD PARTITION ( PARTITION name … )
•
REORGANIZE old1,old2 INTO ( … )
•
COALESCE PARTITION 4
•
ADD PARTITION PARTITIONS 6
Freitag, 4. Dezember 2009
ALTER TABLE
•
ALTER TABLE …
•
OPTIMIZE PARTITION …
•
ANALYZE PARTITION …
•
REPAIR PARTITION …
•
CHECK PARTITION …
•
REBUILD PARTITION ...
Freitag, 4. Dezember 2009
Verschiedenes
•
INFORMATION_SCHEMA.PARTITIONS
•
EXPLAIN PARTITIONS SELECT …
•
Beschränkt: Kein Fulltext, kein GIS, keine
FK Constraints, keine Partitioned Temp
Tables
•
every unique key on the table must use
every column in the table's partitioning
expression
Freitag, 4. Dezember 2009
Was ist neu?
•
Neues InnoDB
•
Neue Replikation
•
Neues Logging
•
Event Scheduler
•
Partitions
•
INFORMATION_SCHEMA
•
XML Functions
Freitag, 4. Dezember 2009
Neue Funktionalität
•
INFORMATION_SCHEMA
•
.processlist
•
.events
•
.global_status .session_status
•
.global_variables .session_variables
•
.profiling
•
.plugins
Freitag, 4. Dezember 2009
SHOW Extension
•
SHOW … LIKE …
•
SHOW … WHERE col LIKE …
•
SHOW … WHERE col IN ...
Freitag, 4. Dezember 2009
Was ist neu?
•
Neues InnoDB
•
Neue Replikation
•
Neues Logging
•
Event Scheduler
•
Partitions
•
INFORMATION_SCHEMA
•
XML Functions
Freitag, 4. Dezember 2009
XML Functions
•
ExtractValue() und UpdateXML()
•
extractvalue(xml_frag, xpath_expr)
•
updatexml(xml_str, xpath, new_xml)
Freitag, 4. Dezember 2009
Wie doll tut es weh?
•
Einige Funktionen langsamer
•
Auf Nehalem 30% schneller als 5.0
•
•
5.4 noch mal 20% schneller als 5.1
Konvertierung einfach
•
Freitag, 4. Dezember 2009
100GB InnoDB mit vielen FK
Constraints und sehr breiten Tables =
Aua
Herunterladen