When I designed first version of JSON UDFs which was reviewed
only internally, I let all functions to validate input and output
JSON. But my colleagues told me to remove this functionality,
because it makes such functions, as json_search,
json_replace or json_contains_key deadly slow if
they find the occurrence in the beginning of the long document.
And first published version of JSON UDFs: 0.2.0 has not this
functionality. What we expected is that users would call
json_valid if they want to be 100% sure the document is
valid.
But I was not surprised that some users expect JSON functions to
work as it was in the first version: validate first, then
process. For example, Ammon Sutherland writes: "json_set - according to the
documentation a sort of 'INSERT... ON DUPLICATE KEY UPDATE'
function which …
Yesterday we had our third Madrid MySQL users group meeting. That was quite interesting. Thanks go to Juan for his presentation.
We plan the next meeting on January 16th after the New Year is out of the way. If you are interested in MySQL and happen to be in Madrid please consider coming to see us.
More information about the next meeting can be found on the group’s web page. Note: The meeting will be in Spanish. I look forward to seeing you.
While I was working on the MySQL Workbench booth at MySQL Connect this year, an attendee came up and asked what a mutex was and how important it is to them in their function as a DBA.
It’s a good question. The short answer is:
Mutexes are mutually exclusive locks and are designed to prevent concurrent access to resources that in doing so may result in unsafe conditions.
They are required as part of virtually all multi-threaded applications (not just MySQL), and are not something that you can specifically prevent from happening. This is a different concept to row-locks and table locks.
Some examples
If the InnoDB buffer pool is full, internally free space needs to be created in order to be able to load your desired page into memory. What you don’t want, is in between freeing and loading somebody else to take your desired …
[Read more]I recently conducted a test backup of my “master-slave” setup in my VirtualBox as I was migrating from Percona Server 5.6.12 to version 5.6.13-rel61.0 with Percona XtraBackup v2.2.0 rev. 4885. However, doing the backup on my slave, I encountered this problem:
[04] Compressing and streaming ./test/checksum.ibd [01] Compressing and streaming ./mysql/slave_master_info.ibd Assertion "to_read % cursor->page_size == 0" failed at fil_cur.cc:293 innobackupex: Error: The xtrabackup child process has died at /usr/bin/innobackupex line 2641.
This is related to a bug posted by my colleague George …
[Read more]
You may think that you already know what's the opposite of
"DISABLED", but with MySQL Event Scheduler you'll be wrong.
In fact MySQL Event Scheduler may have three different
states[1][2]:
DISABLED - The Event Scheduler thread does not run [1]. In addition, the Event Scheduler state cannot be changed at runtime. OFF (default) - The Event Scheduler thread does not run [1]. When the Event Scheduler is OFF it can be started by setting the value of event_scheduler to ON. ON - The Event Scheduler is started; the event scheduler thread runs and executes all scheduled events.
So if you're going to find it in the DISABLED state and
instinctively set it to ENABLED you'll end up with a
non-starting MySQL daemon.
Be warned and stay safe out there!
[1]:
http://dev.mysql.com/doc/refman/5.5/en/events-configuration.html
[2]: When the Event Scheduler is not running does not appear …
I just tried out EXPLAIN UPDATE in MySQL 5.6 and found unexpected results. This query has no usable index:
EXPLAIN UPDATE ... WHERE col1 = 9 AND col2 = 'something'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: foo
type: index
possible_keys: NULL
key: PRIMARY
key_len: 55
ref: NULL
rows: 51
Extra: Using where
The EXPLAIN output makes it seem like a perfectly fine query, but it’s a full table scan. If I do the old trick of rewriting it to a SELECT I see that:
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: foo
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 51
Extra: Using where
Should I file this as a bug? It seems like one to me.
MySQL has exceptional track of record by introducing minor fixes that cause major breakages. Though usually I could blame naiveté of engineers, who did not really ever have to deal with production implications, but lately I can start sensing various business implications against open-source offerings.
As an original author of mydumper I really cannot get out of my mind that 5.5 and 5.6 metadata locking changes are there to screw with anyone who is building a backup solution using stable snapshot views of MySQL (for example, mysqldump –single-transaction, the golden standard of backing things up in MySQL world).
As seen in a bug #71017 (palindrome!) filed by my esteemed colleague Eric, newly introduced behaviors …
[Read more]Thanksgiving is almost here. We would like to take this opportunity to thank all our users, customers, corporate clients and fans of SQLyog, MONyog for all the support over the years.
We thought we’d get the festivities started a little early by offering a 20% flat discount on all Webyog products. Offer expires on November 27, 2013 at 23:59 PST. Grab the offer before it’s gone.
Head right away to the Online Shop and apply the coupon code: tg2013.
Cheers,
Team Webyog
The post Thanksgiving Offer – 20% off …
[Read more]You should take care when changing schema in a MySQL/InnoDB database cluster. But exactly how much care? that you can find out in next Galera webinar session hosted together with Severalnines:
The webinar goes through best practices for database schema changes in online system, with all Do's and Dontcha's listed. Session date will be Dec 3 and there will be two sessions targeted conveniently for EMEA and US timezones. You can register your seat through following links:
…
[Read more]This week we talk about how to install and use the MariaDB Audit plugin, and what the audit log looks like. Ear Candy presents a gotcha with MySQL and temporary directories, and At the Movies is about using Dynamo for more than just a data store.
Events
DB Hangops -
every other Wednesday at noon Pacific time