For my example, (more...)
For my example, (more...)
When Steven and I wrote MySQL Stored Procedure programming our biggest reservation about the new stored procedure language was the lack of support for proper error handling. The lack of the SIGNAL and RESIGNAL clauses prevented a programmer from raising an error that could be propagated throughout a call (more...)
For my newest ipython-sql trick, I needed to compare some queries run across different databases. How hard would it be to get side-by-side results into tidy IPython Notebook output?
Not hard at all, it turns out, if you're willing to violate basic principles of human decency.
That's an itty-bitty image, (more...)
When to consider sharding a MySQL database
Why should you not just design your applications from the start to account for data sharding? Sharding a database, that is horizontally partitioning tables among multiple databases, creates an added level of complexity that is not desirable in an application. However, there are times when sharding is required to maintain acceptable performance. So when is the right time to shard your database?
When to consider sharding a MySQL database Why should you not just design your applications from the start to account for data sharding? Sharding a database, that is horizontally partitioning tables among multiple databases, creates an added level of complexity that is not desirable in an application. However, there are times when sharding is […] -->
This entry and my next will be a little different from what I normally write. This info comes from some research I did recently into MySQL.
The Three Major Areas of Difference Between MariaDB and MySQL
An unresponsive web site is as good as asking your customers to leave. According to surveys, almost 50% of web users expect a page to load in less than 2 seconds, and 4
Back-story: A developer came to me and wanted explanation for a weird behavior in MySQL. They inserted a record (to InnoDB table), committed, and after receiving a message (on another application) tried to read that inserted record immediately, but the newly inserted record was not found. Problem only happened in production, but not always (quite frequently).
After comparing the MySQL parameter files between production and development environments I discovered that in production autocommit was disabled to make MySQL behave more like Oracle. This setting was removed from development after we rebuilt the environment (to use multiple MySQL instances with Oracle (more...)
The Call for Papers is already open and ends on 30th June 2012:
German Link: http://www.doag.org/de/events/konferenzen/doag-2012/fuer-referenten.html
English Link: http://www.doag.org/en/events/konferenzen/doag-2012/fuer-referenten.html
Once again, I (more...)
|Ver este articulo en Español|
This is THE MySQL performance book. Period!
I've been doing lately quite many database clustering implementations; Oracle RAC and since we have many MySQL instances in production, had to find a good way to make MySQL instances highly available also.
One good solution for this is managing MySQL instances with clusterware and since we are planning to use Oracle RAC on Oracle Enterprise Linux anyway, then Oracle Clusterware is an excellent candidate for this task. Also... Oracle Clusterware is included with Oracle Enterprise Linux at no additional charge.
Requirements I had:
- Multiple MySQL instances running in the same cluster, in case of node failure affected MySQL instances (more...)
MySQL lets you write a group by statement that references columns that aren't in the group by, and aren't aggregates. For example:
mysql> select table_name, column_name, count(*)
-> from information_schema.columns
-> where table_schema = 'information_schema'
-> group by table_name
-> limit 5;
| table_name | column_name | count(*) |
| CHARACTER_SETS | CHARACTER_SET_NAME | (more...)
There was an interesting index related performance problem on Stack Overflow recently. The problem was to check an input string against a table that holds about 2000 prefix patterns (e.g.,
LIKE 'xyz%'). A fast select is needed that returns one row if any pattern matches the input string, or no row otherwise.
I believe my solution is worth a few extra words to explain it in more detail. Even though it’s a perfect fit for Use The Index, Luke it’s a little early to put it as an exercise there. It is, however, a very good complement (more...)
In Europe, many people love Open Source with its connotations of sharing and village co-operatives. On the other hand, many Europeans don’t like the big, successful American companies (witness the ritual McDonalds-bashing).
This emotional preference for Open Source to big American companies is why the EU competition authorities have decided (more...)