Problem With the release of MySQL 5.1, many DBAs are going to be scheduling downtime to upgrade their MySQL Server. As with all upgrades between major version numbers, it requires one of two upgrade paths: Dump/reload: The safest method of upgrading, but it takes out your server for quite some time, especially if you have a large data set.mysql_upgrade: A much faster method, but it can still be
I've updated the datagrid class with (shock horror!) an archive containing everything you need. Should make it much easier (ie less tedious) for you to get it if you want it. To remind you, the datagrid class is a PHP class which makes it rather simple to show grids of your data. You have complete control over the style using CSS and you see an example or 8 here.
EclipseLink JPA replaces TopLink Essentials as the JPA implementation
in GlassFish
v3. One of the benefits of using EclipseLink is that it
provides efficient pagination support for the MySQL
database by generating native SQL statements such as "SELECT ...
FROM <table> LIMIT <offset>, <rowcount>".
The MySQL LIMIT clause definition says:
The LIMIT clause can be used to constrain the number of rows
returned by the SELECT statement. LIMIT takes one or two numeric
arguments, which must both be non-negative …
I have recently been investigating a bew feature of MySQL 6.0 - the "Pool-of-Threads" scheduler. This feature is a fairly significant change to the way MySQL completes tasks given to it by database clients.
To begin with, be advised that the MySQL database is implemented as a single multi-threaded process. The conventional threading model is that there are a number of "internal" threads doing administrative work (including accepting connections from clients wanting to connect to the database), then one thread for each database connection. That thread is responsible for all communication with that database client connection, and performs the bulk of database operations on behalf of the client.
This architecture exists in other RDBMS implementations. Another common implementation is a collection of processes all cooperating via a region of shared memory, usually with semaphores or other synchronization objects located in that shared …
[Read more]I have recently been investigating a bew feature of MySQL 6.0 - the "Pool-of-Threads" scheduler. This feature is a fairly significant change to the way MySQL completes tasks given to it by database clients.
To begin with, be advised that the MySQL database is implemented as a single multi-threaded process. The conventional threading model is that there are a number of "internal" threads doing administrative work (including accepting connections from clients wanting to connect to the database), then one thread for each database connection. That thread is responsible for all communication with that database client connection, and performs the bulk of database operations on behalf of the client.
This architecture exists in other RDBMS implementations. Another common implementation is a collection of processes all cooperating via a region of shared memory, usually with semaphores or other synchronization objects located in that shared …
[Read more]Just a quick introduction to begin with.
I joined Sun Microsystems in Feb 2009 to look after the product management for MySQL Cluster and MySQL replication.
I started my career with Nortel (technically BNR which was the R&D arm of Northern Telecom but everything later got merged and rebranded as Nortel). I was responsible for writing the original proprietary, in-memory database for Nortel’s HLR product. Later on, we used a number of 3rd party databases for the HLR (provisioning rather than real-time) and then HSS - starting with Oracle for the HLR and then SOLID but then settling on MySQL Cluster as the scaleable real-time database for the HSS.
When I left Nortel (via an IBM rebadging) I moved to Sun, hoping to use my experience as a MySQL Cluster customer to help the team build upon their strong product.
So far, so good - I’ve been really impressed both with the MySQL team and with how well the product is …
[Read more]There seems to be an optimizer problem in 5.1, if you put a NULL in the IN clause of a SELECT. For example, given the following table:
CREATE TABLE foo ( a INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (a) );
Compare these two EXPLAINs:
mysql> EXPLAIN * FROM foo WHERE a IN (160000, 160001, 160002)\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: foo type: range possible_keys: PRIMARY key: PRIMARY key_len: 4 ref: NULL rows: 3 Extra: Using where 1 row in set (0.06 sec) mysql> EXPLAIN SELECT * FROM foo WHERE a IN (NULL, 160000, 160001, 160002)\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: foo type: ALL possible_keys: PRIMARY key: NULL key_len: NULL ref: NULL rows: 327680 Extra: Using where 1 …[Read more]
A little while ago, I was the brave soul tasked with making sure Drizzle was working properly and passing all tests on Solaris and OpenSolaris. Brian recently blogged about some of the advantages of also running on Solaris and the SunStudio compilers - more warnings from the compiler is a good thing. Many kudos goes to Monty Taylor for being the brave soul who fixed most of the compiler warnings (and for us, warnings=errors - so we have to fix them) for the SunStudio compilers before I got to making te tests work.
So, I got to the end of it all and got pointed to an OpenSolaris x86 box where the drizzleslap test was timing out. The timeout for tests is some amazingly long amount of time - 15 minutes. All the drizzle-test-run tests are rather short tests.
To make running the tests quick, I usually LD_PRELOAD …
[Read more]Three great beta deliveries in one week!
MySQL Connector/.Net 6.0.2 beta, a new version of the all-managed .NET driver for MySQL.
MySQL Connector/C++ 1.0.4 beta, a new
release providing C++ API for connecting client
applications to the MySQL Server. If you know JDBC, this should
be familiar to you.
MySQL Connector/C 6.0.0 beta, a new
version of the C API for accessing MySQL database servers
Use them and let us know what you think.
Learn more about Connector/C++ here.
Learn more about Connector/C …
I am happy to announce next build of our backup tool. This version contains several bugfixes and introduces initial implementation of incremental backup.
Incremental backup works in next way. When you do regular backup, at the end of procedure you can see output:
PLAIN TEXT CODE:
- The latest check point (for incremental): '1319:813219999'
- >> log scanned up to (1319 813701532)
- Transaction log of lsn (1318 3034677302) to (1319 813701532) was copied.
- 090404 06:03:29 innobackupex: All tables unlocked
- 090404 06:03:29 innobackupex: Connection to database server closed
- innobackupex: Backup created in directory '/mnt/data/tmp'
- innobackupex: MySQL binlog position: filename …