I have had a great response from people with regards to the
(possible) closure of MySQLDevelopment. It seems people want to
keep the site alive in one format or another and I have had a lot
of communication from MySQL themselves with regard to keeping the
content alive.
First let me say sorry to all the people who did respond, as
suggested in my last post I am really busy at the moment and it's
difficult to find the time to reply in a timely fashion. I will
be contacting you all individually this weekend.
Whatever happens it seems that while the site may change a little
as from the 1st May MySQLDevelopment will still be available in
some form. I'll keep you posted.
I finally got around to working with the 5.1 scheduler. I wanted to have a simple but non-trivial example, and when I saw Brian Akers post on the new processlist table, I thought of a useful little application: I would submit an event that would summarize the users and their statuses at regular intervals so I could track user trends.
First off, I needed to enable the scheduler by adding the following line to my configuration file:
event_scheduler=1
Now the scheduler is ready for action. So I created a table to hold my process list details:
CREATE TABLE processhistory (h_timestamp DATETIME,
processcount INTEGER,
…
First, a bit of background information… MySQL has a variable called tmp_table_size which is used whenever a temporary table is needed for many types of operations, but it’s mainly used for ORDER BY and GROUP BY. The tmp_table_size variable (in correlation with the max_heap_table_size variable) decide at what point to convert an in-memory (that is, HEAP storage engine) temporary table to an on-disk (that is, MyISAM) one.
So, if the result of your query will end up greater than the lesser of tmp_table_size or max_heap_table_size, once it reaches that point, it will be automatically converted to a MyISAM table, on-disk (in tmpdir, incidentally).
Here’s a scenario: You have a SELECT query, nothing particularly special. It isn’t any more complex than another query on the same tables, but it performs a bit worse. You put some load on it, and it performs miserably, even putting the server in pain in the process. You check what’s …
[Read more]A friend of mine recently asked me to show him how to enable cascading deletes between tables in MySQL. Cascading updates and deletes can be turned on between tables related with foreign keys in many RDBMSs. Though they can be convenient for some purposes, they can have unexpected side effects, and can be very confusing and dangerous at times. In this article I’ll discuss some of the ways cascades can do invisible things, and show you one place they can be very handy too.
MySQL Bugs: #18866: ndbd segfaults when starting 2 times
Jonas is just incredible, not even 3 minutes after I report a bug he replies to it. It takes me 4 minutes to realise it's actually duplicate, and by the time I want to comment on that myselve I see that he already made the same comment.
No way you can ever get that from a proprietary software company !
A quick workaround for the tablespace bug I reported earlier to MySQL.
An extent can't be reused to another table until a LCP has been performed. You can force a LCP by using 'ndb_mgm -e "all dump 7099"'
At least now you can cotinue adding stuff to your database while not having to add extra tablespaces altough you deleted the data ... to be continued :)
No, this isn't about our multi-year extension of the InnoDB agreement with Oracle... Instead, Apple has said that they will enable intel Mac users to run Windows. Ok, they are doing it in an unsupported fashion with a bootloader called "Boot Camp" and customers need to install their own copy of Windows XP. But still, it's a significant change of mind from Apple. Well done guys! Maybe Dvorak was right all along.
What's next? Will Microsoft give a keynote at LinuxWorld? Actually that happened this morning also, with Bill Hilf, General Manager of Platform Strategy. …
[Read more]The Spread Toolkit is one of my favorite Open Source projects. Spread lets you send multicast group messages between applications. It provides reliable, ordered, asynchronous message delivery, and it's efficient, works on large wide-area networks, and can survive and recover from network failures.
What kind of things could you do if a MySQL server could send and receive messages using Spread? I started a new project, the MySQL Message API, to find out. For a few ideas to get started with: if you want to notify a bunch of application servers whenever a particular table changes, you can write a simple trigger to send them all a message. Or if you have lots of different specialized database servers powering your 30-million-user social networking site, you might want to send messages from one server process them (with stored procedure code) on another.
The Message API is a set of MySQL …
[Read more]For all of the innovation that occurs in today's technology marketplace, the most commonly used business applications-those associated with Microsoft Office -- remain stale and hackneyed. While we wait for Microsoft to come out with a new version of Office that overshoots user need while ensuring that consumers, businesses and government remain locked into Microsoft specific standards, I put forth the notion that an open source business productivity suite has the rare opportunity to dislodge Microsoft's stronghold on the desktop - it just needs a little help from the community.
The Ultimate Battleground?
We are on the cusp of a unique time in the Microsoft product
lifecycle. Both Office 12 and Windows Vista loom on the horizon
and IT shops and end-users around the world will have to decide
just how much extra they are willing to pay (again) for
applications like Powerpoint and Access, and how much they plan
to use InfoPath and …
I'm using DBDesigner 4 quite a lot. I think the successor,
MySQL Workbench, is very promising, but it does
not meet my requirements (yet).
Having DBDesigner Generate SQL
Those that've worked with DBDesigner have probably noticed the
particular strategy it uses to generate SQL code from the model.
First of all, the user needs to specify what kind of SQL script
is to be generated: a DROP
, CREATE
or
optimization script. Then, DBDesigner does it's thing. In case of
a DROP
or CREATE
script, exactly one
statement is generated for each table in the diagram (or in the
current selection if you choose to).
In case of the CREATE
script, each CREATE
TABLE
statement contains not only the column …