Oracle is the most powerful DBMS in the world. However, Oracle's expensive and complex replication makes it difficult to build highly available applications or move data in real-time to data warehouses and popular databases like MySQL. In this webinar-on-demand you will learn how Continuent Tungsten solves problems with Oracle replication at a fraction of the cost of other solutions and with less
They say there are two hard things in software development: cache invalidation, naming things, and off-by-one errors. Even though it seems like a simple thing, naming tables, columns, and stored procedures is hard when designing a SQL database. There are three simple rules I like to abide by when designing schema: give things meaningful names, be consistent, and favor verbosity over obscurity. Let’s expand each one of those points, and then I’ll cover some MySQL specific addendums.
Meaningful Names
The first part of this idea is to give objects unique, specific names. A table that is named Entities is going to confuse everyone. You want to name your table with the specific category of data or noun it represents. You can do tragical things to your database like have one giant table that’s just EntityID, Key, Value, but I don’t know why you’d use a relational database in that case!
Think of a table in terms of …
[Read more]In MySQL 5.7.2 a new include file “–source include/force_myisam_default.inc“ made its appearance in most of the .test files in the MTR suite. If you were wondering about this read on.
I will explain this change in two blogs. The first will describe why we are doing this and the next will explain how it is being done.
In order to set the context let me delve a bit into history. Starting from MySQL 5.5, the default storage engine for new tables is InnoDB. This change was coupled with a reverse switch in mysql-test-run, which made MyISAM the default storage engine for the server started through MTR(mysql-test-run). As a result default storage engine in the server was innodb, but most tests were run with the old default MyISAM.
Let me explain why such a switch was required. The usual practice in MTR test development was to not specify an engine in create table statement, unless the test is specifically for a …
[Read more]
Gina Tricot is a family-owned, Swedish fashion chain that
consists of over 180 stores across the following five markets:
Sweden, Norway, Denmark, Finland and Germany. Combined with
growing online sales, the company reaches fashion-conscious women
in 28 countries across Europe. In 2012, Gina Tricot reported
sales of SEK 2.3 billion.
Challenges
- Implement a reliable and scalable infrastructure to drive online sales both in countries with a physical presence via stores and in countries where the company sells exclusively online.
- Outsource the day-to-day administration of the e-commerce system, including the databases, to a local partner while maintaining overall overview and control of the system.
Solution
- Selected MySQL to power Gina Tricot’s e-commerce application based on its reputation as default database for web-based …
The Percona Live MySQL Conference and Expo 2014 is just two months away. I’m very excited about this year’s event which continues our tradition of open technical discussions and inviting all parties to the table.
We have a great amount of technical talks from Oracle – I’m especially excited about future-focused talks shedding some light about what to expect in MySQL 5.7 and beyond. This content is best covered by developers actually designing the system and writing the code. We also have great coverage of MySQL alternatives from Percona and MariaDB. You can view the entire program here.
It is great to see well-rounded coverage of many …
[Read more]I’m reading a 2012 google paper about Spanner. I saw Spanner described somewhere as “semi-relational” and wanted to read more. The paper I’m reading is “Spanner: Google’s Globally-Distributed Database” .
Early on, in page 4, is this paragraph:
“Spanner’s data model is not purely relational, in that rows must have names. More precisely, every table is required to have an ordered set of one or more primary-key columns. This requirement is where Spanner still looks like a key-value store: the primary keys form the name for a row, and each table defines a mapping from the primary-key columns to the non-primary-key columns. A row has existence only if some value (even if it is NULL) is defined for the row’s keys. Imposing this structure is useful because it lets …
[Read more]MySQL 5.7 and Workbench 6.1 work together to provide an even prettier version of a query plan than the impressive stuff from the 5.6/6.0 combo
Here is a sneak peek at MySQL Workbench 6.1′s VISUAL EXPLAIN.
Recently I was demonstrating the difference between using EXPLAIN and VISUAL EXPLAIN to a full room at the fantastic SkiPHP Conference in Salt Lake City. MySQL 5.6 and Workbench 6.0 combine to make an easy to read graphic that aids in understanding the Query Plan Generated by the Optimizer. All in the audience agrees that the ASCII-ish output of EXPLAIN paled in comparison to VISUAL EXPLAIN. Now MySQL 5.7 and Workbench 6.1 work together to provide an even better VISUAL EXPLAIN.
I really meant to test 5.7/6.0 on the plane on the way to SLC but did not get around to it. If I had known, I would have covered the new …
[Read more]I recently upgraded an instance to 5.7.3 the other day, and ran into an error, so I wanted to share the resolution for it here.
In my case, I was upgrading 5.7.1 to 5.7.3. However, this will apply to anyone wanting to upgrade from pre-5.7.2 (including 5.6/5.5) to 5.7.2+.
I performed the upgrade, in-place, and restarted mysqld. This was fine. However, then I attempted to connect via the command-line, and received the following error:
shell> mysql -uroot -ppass -P3310 ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to this MySQL server
Searching the net, you’ll mostly find RTM replies, which were all accurate as far as I could tell. In all of those prior reported cases, the issues were expected behavior and the issues were ultimately user error.
Of course I double-checked my config and data files. I knew I didn’t change anything in the user table, or any system table, for that matter. …
[Read more]As many of you know, both MariaDB Enterprise and MaxScale have been released and are now available for use.
Since they are both so new, I just wanted to let everyone know Ivan Zoratti will conducting a webinar next week discussing both of these technologies.
I’m looking forward to it, and should anyone out there be interested in either MDBE or MaxScale, we hope you’ll attend, and get any questions you might have answered.
When: February 6, 2014 – 6:00pm CET
Sign up now here:
http://www.skysql.com/why-skysql/webinars/…maxscale-0
Do you store date or time values in MySQL?
Would you like to know how to avoid many possible types of pain, most of which you cannot even begin to imagine until you experience them in really fun ways?
Then this blog post is for you. Here is a complete set of rules for how you can avoid aforementioned pain:
- All date and time columns shall be
INT UNSIGNED NOT NULL, and shall store a Unix timestamp in UTC.
Enjoy all the spare time you’ll have to do actually useful things as a result.