"The database support in NetBeans allows users to connect to a database and view and modify the database structure and data. These graphs show which database servers users connect to most often."
Of particular note, besides the large usage of MySQL and
Oracle,
is the large usage of Java
DB (Derby), and the significant PostgreSQL
usage. |
So, I was asked in IRC today about the proposed short array
syntax for PHP. For those that don't know, I mean the same syntax
that other languages (javascript, perl, python, ruby) all have.
Currently in PHP we have this:
$var = array(1,2,3);
The proposed additional syntax is:
$var = [1,2,3];
So, I voted +1 for this feature on the PHP Internals list. A
colleague asked me why I voted +1. At first I had no good answer
other than it was just a gut feeling. It just feels like a good
addition to the language. It is common among web languages and
therefore users coming into PHP from other languages may find it
more comfortable.
The best thing I could tell him was that it would make arrays
fall in line with other data types in PHP. For example, you never
write:
$var = int(1);
$var = string(foo);
So, why oh why do we have to have what …
Contemporary software engineering models include many loosely-defined layers. Database developers might help with other layers, but for the most part a database administrator’s domain is the persistence layer.
-
- Presentation
- Application
- Business Logic
- Persistence (also called Storage)
The Daily WTF has an article on The Mythical Business Layer makes the case for not separating the business layer and the application layer:
A good system (as in, one that’s maintainable by other people) has no choice but to duplicate, triplicate, or even-more-licate business logic. If Account_Number is a seven-digit required field, it should be declared as CHAR(7) NOT NULL in the database and …
[Read more]Recently I ran into major problems using GNU diff. It would crash with "diff: memory exhausted" after only a few minutes trying to process the differences between a couple 4.5GB files. Even a beefy box with 9GB of RAM would run out of it in minutes.
There is a different solution, however, that is not dependent on file sizes. Enter rdiff – rsync's backbone. You can read about it here: http://en.wikipedia.org/wiki/Rsync (search for rdiff).
The upsides of rdiff are:
- with the same 4.5GB files, rdiff only ate about 66MB of RAM and scaled very well. It never crashed to date.
- it is also MUCH faster than diff.
- rdiff itself combines both diff and patch capabilities, so you can create deltas and apply them using the same program
The downsides of rdiff are:
- …
Well, it has been almost a month. I know I am late to the
blogosphere on my thoughts. Just been busy.
Again this year, the Phorum team was invited to be a part of the
DotOrg Pavilion. What is that? Basically they just
give expo floor space to open source projects. It is
cool. We had a great location this year. We were
right next to the area where they served food and drinks during
the breaks. We had lots of traffic and met some of our
power users. IMVU.com is getting 1.5 million messages per month
in their Phorum install. They did have to customize it to
fit into their sharding. But, that is expected. A guy
(didn't catch his name) from Innobase came by and told us that
they just launced InnoDB support forums on their site using
Phorum. Cool. So now …
A coworker found out how secure Amazon's MP3 store is. Even
big guys like Amazon make errors in their web site
security.
So, I clicked purchase and the album immediately started
downloading. It was at this point that I had the thought cross my
mind: "Did I update my credit card info?"
Well, no, I didn't. Before the album finished downloading, I was
trying to change the method of payment. Turns out, for a digital
purchase, you can't do such a thing. So, I waited and wondered
was was going to come of this...
UPDATE: There are some examples being added at the MySQL Forge now.
When I first started installing MySQL for myself, it was quite
handy to have the example my.cnf files in the source package. I
was a noob to the MySQL configuration. Even after I became more
experienced, I would use them as a starting point. However, I now
find that they are so behind the times they are not as useful.
Here are some of the comments from the files.
my-small.cnf
# This is for a system with little memory (<= 64M) where MySQL
is only used
# from time to time and it's important that the mysqld
daemon
# doesn't use much resources.
my-medium.cnf
# This is for a system with little memory (32M - 64M) where MySQL
plays
# an important part, or systems up to …
While I was at the MySQL Conference, I sat down with Michael
Kimsal of WebDevRadio and recapped the two talks that I gave at the
conference. I have uploaded the slides so you can follow
along if you want.
One to a Cluster - The evolution of the
dealnews.com architecture.
MySQL Tips and Tricks - Some simple tips and some
of the more advanced SQL we use in Phorum.
Thanks Michael. Any time you need a guest, just let me
know.
|
Programming databases is tricky. If you need the basic access only, any programming language can do. But when you want to get some advanced feature, you face difficult choices. If you are lucky, the feature you are looking for is available in a library compatible with your language of choice. But usually it happens that you are writing in Java, and your life-saving routine is only available in Perl, or you are writing in PHP and striving for features that are buried deep into a Java class. Hard choices. But it does not have to be that way. Sometimes, you can develop closer to the server, in such a way that any client, using any programming language, can access your extended routine. MySQL, although not as equipped with built-in features like some competitors, is nonetheless particularly suited for such … |
So, I mentioned before that I found out about index_merge at the MySQL Conference. I was
wondering why I had not heard more about it since it came out in
5.0.3. When talking with some MySQL people about it, I received
mixed results. So, I decided to kind of run my own tests on some
data and see what I could figure out.
I apologize for Wordpress' bad output. =(
The Data
I created a table with 5 million rows. Early tests with MySQL's
Harrison Fisk (HarrisonF) over my shoulder with small data sets
showed MySQL would optimize out the indexes in favor of table
scans. I wanted to avoid that. This is my table schema:
CREATE TABLE `test2` (
`id1` int(10) unsigned NOT NULL default '0',
`id2` int(10) unsigned NOT NULL default '0',
`id3` int(10) unsigned …