Ulf Wendel

2006/05/17
by admin
Comments Off on Neue MaxDB Version veröffentlicht: 7.6.00.27

Neue MaxDB Version veröffentlicht: 7.6.00.27

Mit MaxDB 7.6.00.27 wurde heute eine neue Version von MaxDB zum Download bereitgestellt. Sowohl 7.6 als auch 7.5 sind für den produktiven Einsatz geeignet (Generally Available (GA) Release). Neueinsteiger werden gebeten Version 7.6 einzusetzen.

Aus dem Announcement:

The new version of MaxDB 7.6 is available now. It can be downloaded at
http://dev.mysql.com/downloads/maxdb/7.6.00.html. For the new features in this version see .

Packages for SUN Solaris x64_64 bit are available now for installing the complete MaxDB software, all MaxDB client software, and SQLDBC.

With this version, the Microsoft Windows packages for installing the complete MaxDB software and for installing the MaxDB client software are offered as self-extracting packages (maxdb-all-win*.exe und maxdb-client-win*.exe). However, these packages can still be extracted
using WinZIP or WinRAR.

In order to facilitate an easier download, the size of all download packages has been reduced by the following:

  • for all platforms offered: slowknl, dbmrfc, dbmgetf , libsapni + dependent Unicode libs
  • for Microsoft Windows additionally: *.pdb und *.map files (used for debugging or for creating a symbolic stack backtrace during runtime)
    You will probably not miss these files 🙂

2006/05/15
by admin
Comments Off on Was für ein K(r)ampf…

Was für ein K(r)ampf…

…. auf allen Fronten. Da hofft man auf einen ruhigen Wonnemonat Mai und auf allen Fronten deuten sich Veränderungen an. Manche sind spannend, so z.B. das Thema Wohnung: 110qm, 670 Euro warm, Altbau, 4 Zimmer, Zentrum, 3 Balkone. Klingt fair oder? War es auch und würde ich nicht nach etwas suchen was perfekt wäre, würde mir jeder fragen wie bekloppt man sein kann das auszuschlagen.

Am Wochenende habe ich mir das Buch “PHP für Kids” gekauft. Erstaunlich wieviel Geld Kinder brauchen, um sich so wenig Buch zu kaufen. 20,– Euro dürften bei der Zielgruppe “Kids” sicherlich mehr als ein Wocheneinkommen sein. Das Buch bekommt von mir 0 von 5 Sternen. Nicht weil es nicht eigentlich 4 von 5 verdient hätte, sondern weil es noch die stinkige ext/mysql Extension für MySQL 5.0 verkaufen will. Nee, kann doch irgendwie nicht sein. Ansonsten ist das Buch witzig geschrieben, versteht durch kluge Auslassungen die Komplexität zu reduzieren und kommt anscheinend aus der Praxis. Ein paar kleine Fehler sind drin, die das 5 von 5 Hasen verhindern, aber die Richtung stimmt. Nur für Kids? Hmm, ein paar mehr Bilder und es könnte auch ein Kid verstehen nicht erst ein Teenie.

2006/04/24
by admin
1 Comment

Wie lang darf ein Blogposting sein?

Vor kurzem stolperte ich über die Frage wie lang ein Blogposting sein darf. Die Diskussion entbrannte um MaxDB-Postings. Muß ein Blog so geschrieben sein, daß er morgens beim Frühstück verzehrt werden kann? Muß er so kurz sein, daß er auch in voller Länge auf einem Planeten erscheinen kann? Muß der Inhalt auf eine brilliante Idee oder einen Aufmacher begrenzt sein?

Ich weigere mich alle Argumente zu akzetieren, die für kurze Blogeinträge plädieren. Mein Blog soll keine weiterer Aggregator und Metablog sein, der nur auf andere Seiten verweist. Das können andere besser, das macht anderen mehr Spaß als mir. Ich bin kein guter Trendscout. Ich möchte den Blog auch nicht auf kurze Artikel limitieren und den Aufwand betreiben Aufmacher für anderswo abgelegte Artikel zu schreiben. Wenn ich mir schon die Mühe mache etwas zu tippeln, dann wird es etwas länger. Das ist typisch für mich. Warum sollte ich davon ablassen. Letztlich – stellte C.J. korrekt fest – entscheidet der Leser.

Was für Leser habe ich? blog.ulf-wendel.de praktisch nicht über RSS-Feeds verbreitet. Neben der Arbeit (PlanetMySQL) und dem Kollegen (C.J.) verbreitet nur Kris meinen RSS-Feed. Fast 90% meiner Leser finden mich über eine Google-Suche und benutzen die Webseite als Knowledge-Base. Nur jeder dritte besucht mehr als eine Seite. Fans, die regelmäßig wiederkehren habe ich keine. Natürlich gibt es bei diesem Profil einen Zusammenhang zwischen Ursache und Wirkung. Andererseits fühle ich mich wohl damit. Es wird auch in Zukunft meterlange Postings geben. Wer das nicht mag, bitte: ihr wisst ja wo der Knopf ist. Abschalten ist sowieso besser…

2006/04/21
by admin
Comments Off on Nächste MaxDB-Schulung: München, 22. – 24. Mai

Nächste MaxDB-Schulung: München, 22. – 24. Mai

… ich würde gerne mal wieder ein paar Tage Urlaub in München machen. Vom 22. – 24. Mai veranstaltet MySQL einen MaxDB-Administration Kurs in München. Wenn sich genügend Teilnehmer finden, wäre mein Kurzurlaub gesichert. Sehen wir uns?

Kursinfos gibt es unter : http://www.mysql.com/training/courses/maxdb_administration.html

Falls ein Thema fehlt – 7.6 erwähnen wir z.B. nicht explizit – einfach fragen! Gleiches gilt für individuelle In-House Schulungen.

2006/04/19
by admin
Comments Off on MaxDB series: news but no series posting

MaxDB series: news but no series posting

Dear MySQL users, MaxDB users and friends,

we have two news for you. The bad one: no MaxDB series posting this week. The good one: german language MaxDB web seminar tomorrow!

My last week has been dominated by preparing the upcoming MaxDB web seminar on MaxDB performance tuning. The web seminar will be held in german tomorrow Thursday, 21.04.2006 at 10 CEST (MEZ). You can still register for the seminar at http://www.mysql.de/news-and-events/web-seminars/maxdb-performance.php. Don’t expect too much from the 45-minute talk. In 45-minutes one can’t do much more than talk about the very basics and try to give you an overview on the topic. Due to the web seminar and other duties we did not make it to write the next MaxDB series posting on transactions.

We have more good news for you. My co-worker C.J. Collier is progressing well in his work to integrate MySQL as a source in the MaxDB Synchronization Manager. Scripts have been developed to create the so-called Shadow and Version tables. These tables contain the meta-data required by the Synch Service to push changes to other participants in the synchronization scenario. C.J. is currently developing the MySQL 5.x triggers which will be used to fill these tables.

No new MaxDB version is on the short-term horizon. But the Changelog of the next MaxDB 7.6 version might show some long-awaited changes, originally planned for MaxDB 7.7. MaxDB will implement data clustering features. Data clustering means that you can decide if all individual database pages of a table get striped over all configured volumes or if chunks of pages are striped. Striping of all pages is good if you have many concurrent high-qualified record accesses, because you are automatically striping the I/O load over all volumes and you are avoiding hot-spots. Grouping database pages in ordered chunks is an advantage if you have few concurrent sessions accessing the same data but you want to profit from sequential read performance and a better support of hardware-based prefetching. Having the freedom to choice on a per-table basis what kind of storage you prefer is a fantastic feature. Applications with few concurrent users and frequent scan operations should see notable performance improvements.

This is still not all… It looks as if some 7.7 optimizer improvements found their way into 7.6. Stay tuned, and join the MaxDB talks at the MySQL User Conference in the next week.


Ulf Wendel for the MySQL MaxDB team

2006/04/17
by admin
Comments Off on Frohe Ostern!

Frohe Ostern!

Man sollte Schafe nicht unterschätzen und mal ein paar Minuten lang ihre Gesichtsausdrücke beobachten… Frohe Ostern!

2006/04/12
by admin
1 Comment

MaxDB series: …just SQL

Dear MySQL users, MaxDB users and friends,

The previous “please wait” posting was caused by a new guideline on series postings. The new guideline says that postings must be written one week before they get published. The week between the writing and the publication is used for corrections. I’m writing these lines on April, 4th but the article won’t be published before Wednesday April, 12th. We hope that in the time between writing and publishing we can catch most of the Gotchas to further improve the quality of the series. However, this series will continue to be more like a collection of blog postings than a book, a magazine article or any other “official documentation”. We try to do our best, but unfortunately we cannot apply the same amount of quality assurance and proof-reading to the MaxDB series that we do for magazine articles, official documentation or official class materials.

In this issue

In the past, we recognized that most MaxDB users do have some SQL knowledge. Hardly any of the typical MaxDB users seem the be beginners in the field of databases. Therefore SQL basics are not of interest. For example, most users who asked us SQL questions in the past did know what kind of joins exist, what the difference between a right join, left join and a full join are and how to define tables. Also, there seems to be no demand on describing the basics of views as many articles did when MySQL 5.0 introduced views to the MySQL server.

MaxDB users seem to be more interested in the limits and additional features over the SQL92 Entry Level compatible SQL dialect implemented by MaxDB. For this reason, we will often provide you only with brief overview information on some topics. If you need to details, check the SQL Tutorial chapter in the MaxDB documentation. Other online resources like the SQL Course and the SQL Course 2 may also be worth reading if you want to learn the very basics. Those who like printed books better and prefer reading on a sunny balcony, can check the book listing on the MySQL Developer Zone.

Data types for table columns

Let us start the discussion of the MaxDB SQL dialect with something very basic: data types. In general you should always select the smallest data type for a column that can hold all values you want to store in the column. Try to keep your data as compact as possbile to save costy disk-read operations and to hold the most records in as short a buffer cache as possible.

For comparisons with MySQL data types, check what mappings have been choosen for the MaxDB plugin of the MySQL Migration Toolkit. The mappings are desribed in two german language blog postings. Although the texts are written in german, no german language knowledge is required to understand the tables given in the articles on mapping strings, BLOB/LONG, numeric types and temporal types.

Datatype Value range Storage Notes
Numeric types
SMALLINT -32768 to 32767, 16-bit 5 bytes Equal to FIXED(5, 0)
INT[EGER] -2147483648 to 2147483647, 32-bit 7 bytes Equal to FIXED(7, 0)
FLOAT(p), precision p (0 < p <= 38) 9. 9999999999999999999999999999999999999E +62 to 1E-64, 0.0, +1E-64 – +9. 9999999999999999999999999999999999999E +62 (p+1) DIV 2 + 2 Floating point numbers.

For MySQL users: try SUM(float_column / 3) * 3 or summing up small values. MaxDB FLOAT is MySQL Precision Math.

FIXED (p,s), 0 <p <= 38, s <= p Depends on p and s, see FLOAT/SMALLINT/INT (p+1) DIV 2 + 2 Fixed point number.

MaxDB is using a packed decimal storage format for INTEGER, FLOAT and FIXED values. This means that if you store the same values in three columns of the three data types (with comparable precisions), you will get the same performance when doing comparisons.

For MySQL users: FIXED is for Precision Math.

String types
CHAR[ACTER](n), n < = 8000 (UNICODE: 4000)   see Manual UNICODE requires 2 bytes per character

Code attributes: ASCII, BINARY, UNICODE

Depending on n (<30, >=30) strings will be stored with a variable length

VARCHAR(n), n <= 8000 (UNICODE: 4000)   see Manual UNICODE requires 2 bytes per character

Code attributes: ASCII, BINARY, UNICODE

LONG [VARCHAR]   up to 2GB of bytes Also known as BLOB, LOB, etc.

Code attributes: ASCII, BINARY, UNICODE

Temporal types
TIME ISO: ’00:00:00′ to ’23:59:59′ 9 bytes Check the manual for database session settings and the database parameter DATE_TIME_FORMAT
DATE ISO: ‘0001­-01­-01’ to ‘9999­-12-­31’ 9 bytes Check the manual for database session settings and the database parameter DATE_TIME_FORMAT
TIMESTAMP ISO: ‘0001-01-­01 00:00:00.000000’ to ‘9999-12-31 23:59:59.999999’ 21 bytes Check the manual for database session settings and the database parameter DATE_TIME_FORMAT

Supports Microseconds

Other types
BOOLEAN TRUE | FALSE | NULL 2 bytes

Check the manual for several aliases for data types, for example DECIMAL, NUMERIC, REAL and many more.

Continue Reading →