MySQL 5.1 uitgebracht
Het heeft even geduurd maar vandaag heeft MySQL, tegenwoordig onderdeel van Sun Microsystems, een nieuwe versie van MySQL, namelijk MySQL 5.1, uitgebracht. MySQL 5.1 is vooral gericht op betere performance maar bevat ook enkele nuttige nieuwe features.
Partitioning
Een van de grootste wijzigingen in MySQL 5.1 is ondersteuning voor partitioning. Met partitioning wordt het mogelijk om delen van een tabel, afhankelijk van bepaalde kolommen, in verschillende bestanden en dus schijven te laten opslaan. Hiermee kan de performance eventueel verbeterd worden.
-
CREATE TABLE log_messages (id INT, log_date DATE, log TEXT)
-
ENGINE=INNODB
-
PARTITION BY HASH( MONTH(log_date) )
-
PARTITIONS 12;
Lees meer over partitioning in MySQL 5.1 »
Event Scheduler
Een veel terugkerende situatie bij het gebruik van databases is het op gezette tijden een bepaalde taak moeten laten uitvoeren. Je kunt natuurlijk cron gebruiken, maar zeker als webdeveloper heb je niet altijd de mogelijkheid om een cronjob aan te maken. MySQL 5.1 biedt hiervoor een extra mogelijkheid: events.
Met de Event Scheduler in MySQL 5.1 wordt het mogelijk om op een specifieke tijd of juist met een bepaald interval een- of meer SQL queries uit te laten voeren. Om een event aan te maken gebruik je het nieuwe CREATE EVENT commando:
-
DELIMITER |
-
-
CREATE EVENT log_table_purger
-
ON SCHEDULE EVERY 1 WEEK
-
DO
-
BEGIN
-
DELETE FROM log_table WHERE LogTimestamp <= DATE_SUB(CURRENT_TIMESTAMP, 1 WEEK;
-
INSERT INTO audit (Dateadded, Message) VALUES(NOW(), "Purged log table");
-
END |
Ideaal voor opruim-acties of bijvoorbeeld het samenstellen van een resultaat tabel.
Lees meer over de MySQL Event Scheduler »
Server log tables
Met MySQL 5.1 is het mogelijk geworden om de query log of juist de slow query log naar een SQL tabel te laten loggen inplaats van naar een tekst bestand zoals eerder het geval was. Tevens wordt het mogelijk om deze functionaliteit runtime aan- en uit te schakelen:
-
SET GLOBAL slow_log = 'ON';
-
SELECT * FROM mysql.slow_log;
Een andere toevoeging aan de slow query log is de mogelijkheid om de minimale 'slow query' drempel te definiƫren in microseconden in plaats van hele seconden zoals tot nu het geval was. Helaas blijkt het echter niet mogelijk om dergelijke trage queries te loggen naar een database tabel, alleen hele seconden worden daarvoor gelogd:
The minimum and default values of long_query_time are 1 and 10, respectively. Prior to MySQL 5.1.21, the minimum value is 1, and the value for this variable must be an integer. Beginning with MySQL 5.1.21, the minimum is 0, and a resolution of microseconds is supported when logging to a file. However, the microseconds part is ignored and only integer values are written when logging to tables.
Lees meer over Server log tables »
Andere verbeteringen
Er zijn nog meer nieuwe features, zoals row-based replication als uitbreiding op statement-based replication, een plugin systeem waarmee verschillende systemen van MySQL runtime vervangen kunnen worden door andere plugins. Verder is de gehele release gericht op betere performance en betere stabiliteit.
MySQL 5.1 downloaden
Binaries zijn beschikbaar voor Windows, MacOSX en enkele Linux gebruikers. Dappere developers kunnen natuurlijk altijd zelf nog vanaf source compilen.
Volg Scriptorama via RSS!
Reageer ook!
Vooral de Event scheduler lijkt mij erg handig voor websites waarop je kan zoeken. Omdat ik vaak innoDB gebruik vanwege de relaties, is het niet mogelijk een fulltext-search te doen. Door met een event alle zoekbare data in een myisam tabel te pompen, krijg je makkelijke zoekbare tabellen :D
Door Terence
op 11.28.08 @ 10:15 am | Permalink
Misschien ook interessant zijn de nieuwe XML functies van MySQL 5.1. Het is onderandere mogelijk om in MySQL XPath queries uit te voeren op XML documenten. Zie http://dev.mysql.com/doc/refman/5.1/en/xml-functions.html
Door Dieter
op 12.01.08 @ 1:54 pm | Permalink
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>