Tonight at a party I was asked the question "so when is
64bit?"
The answer is now. Hell, this has been the answer for the last
half of 2005. If you are buying servers do not consider 32bit
machines. Don't take any application serious unless it can make
reasonable usage of a 64bit machine.
I'm serious, don't waste your time on 32bit machines. They can't
access enough memory, and the trick to scaling (right after
learning how to partition your problem) is "buy more
memory".
You will want to use that memory, whether you are using MySQL, a
webserver, or even an application server. The key will be 64bit
address space.
And if you are a developer, stop thinking about 32bit memory
address space. Think about big massive chunks of memory you can
allocate and optimize knowing that "modeling the data for memory"
is more important then "modeling the data for disk".
The desktop might be …
Tonight at a party I was asked the question "so when is
64bit?"
The answer is now. Hell, this has been the answer for the last
half of 2005. If you are buying servers do not consider 32bit
machines. Don't take any application serious unless it can make
reasonable usage of a 64bit machine.
I'm serious, don't waste your time on 32bit machines. They can't
access enough memory, and the trick to scaling (right after
learning how to partition your problem) is "buy more
memory".
You will want to use that memory, whether you are using MySQL, a
webserver, or even an application server. The key will be 64bit
address space.
And if you are a developer, stop thinking about 32bit memory
address space. Think about big massive chunks of memory you can
allocate and optimize knowing that "modeling the data for memory"
is more important then "modeling the data for disk".
The desktop might be …
MySQL's GROUP_CONCAT command is a phantastic thing, it can
simplify big efforts to a small piece of work that would not even
be worth mentioning - if the way that the problem is being solved
wouldn't be so nice ;-).
The reason why I'm writing this is because I have to work on such
a task with PostgreSQL, and I already know that it will be quite
a tough piece of work, which could be solved with MySQL within
seconds. So to everybody, who doesn't still know the power of the
GROUP_CONCAT aggrigate function, here's a little example, which I
think is self-explaining:
mysql> CREATE TABLE group_concat_test ([Read more]
-> id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY,
-> _key INT UNSIGNED NOT NULL,
-> _value CHAR(1) NOT NULL);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO group_concat_test
-> (_key, _value) VALUES
-> (1, 'b'),
…
I wish everybody envolved with MySQL: developers, employees, the
management and of course everybody in the MySQL community a great
and successful new year 2006!
It will be exciting to see what the new year will bring - I
guess, a lot of great things again. So keep on rocking everybody
:-)!
As it's New Year's Day (for Gregorian folks), I got to thinking about MySQL and how it might wish folks Happy New Year. Perhaps someday MySQL will be a bit more like HAL and be capable of doing these things on it's own, for now it takes some work on the command-line client prompt to get a response:
mysql> SELECT DAYOFYEAR(NOW()) as 'Day of Year'; +-------------+ | Day of Year | +-------------+ | 1 | +-------------+ 1 row in set (0.26 sec)
And there you have it, MySQL telling you it's New Year's Day! Not terribly exciting, it's obvious the MySQL doesn't know that day number 1 might be something special to some users. MySQL needs to be a little more concious of culture, perhaps allowing this kind of more direct question:
mysql> SELECT ISNEWYEARSDAY(); +-----------------+ | ISNEWYEARSDAY() | +-----------------+ | 1 | …[Read more]
My First Web Server
Originally uploaded by jzawodn.
It was nearly 10 years ago (mid 1996) that I first put my own web server on the Internet. Back in college, I managed to convince one of the staff to give my personal computer a static IP address so that I could run a web server. At the time there were no other student computers on the campus network, let alone with static addresses.
It was a year of firsts for me and for the University.
At the time my nearly state of the art computer was a 486 DX2/66 with 16MB of RAM running Linux 2.0.0. (I still remember upgrading from 1.x.x.) The computer lived at the address …
[Read more]Personally last year was very interesting. Not necessarily successful, but enlightening on so many levels, that I am sure 2006 can only be a success. Now over the last few days I afforded myself the luxury (or torture) to look at other peoples code, besides pushing out one RC after another on MDB2 and related packages. Specifically I looked at some of the latest ActiveRecord, CRUD in no time, hyped up frameworks: QCodo, Cake and Symfony.
Now the first thing to do is to setup the given framework and to get some decent output. The only one that I was able to setup in a reasonable time was Cake. However even Cake failed some basics in the "how does the first wiff smell" test. Here goes a list of the issues I found to smell the worst.
- Use of short open tags, sorry thats …
The year started in January (obviously ;-) with the
publication of my first book, "Professionelle Softwareentwicklung mit PHP
5".
In February I joined the Gentoo Linux development team, attended the
Free and Open Source Developers European Meeting
(FOSDEM), and launched a new website for …
The year started in January (obviously ;-) with the
publication of my first book, "Professionelle Softwareentwicklung mit PHP
5".
In February I joined the Gentoo Linux development team, attended the
Free and Open
Source Developers European Meeting (FOSDEM), and launched a new website for PHPUnit.
In March I gave a …
For those MySQL DBAs who think that binary logs aren't needed,
think it over carefully. Yes, there is overhead in having binary
logging turned on. Yes, it is needed for replication. But what
about those other situations? Well I ran into one just
the other day.
An automated job to create summarized records from an hourly load
was started up. The problem was that the hourly load was only 1/4
of the way through. Whoops! After a few million records
were already inserted & updated, and the damage was assessed, we
know it would be a very long night, and tried come up with a plan
to undo the damage.
Fortunately, binary logging was enabled on that particular machine. After "guestimating" the approximate time that the job started, I was able to work my way through the MySQL binary logs using the mysqlbinlog utility to find the SQL statements that performed the inserts and the updates. After dumping them out to file, …
[Read more]