Showing entries 1 to 10 of 55
10 Older Entries »
Displaying posts with tag: production (reset)
Webinar Thursday June 22, 2017: Deploying MySQL in Production

Join Percona’s Senior Operations Engineer, Daniel Kowalewski as he presents Deploying MySQL in Production on Thursday, June 22, 2017 at 11:00 am PDT / 2:00 pm EDT (UTC-7).

Register Now  MySQL is famous for being something you can install and get going in less than five minutes in terms of development. But normally you want to run MySQL in production, and at scale. This requires some planning and knowledge. So why not learn the best practices around installation, configuration, deployment and backup?

This webinar is a soup-to-nuts talk that will have you going from zero to hero in no time. It includes discussion …

[Read more]
Basically Shitty License

Monty announced that he has created a new non-open source license called the "Business Source License" or BSL.  I think it should have a different name...

You see, Monty has fundamentally crafted a straw man to stand in for the general Open Source model by applying his experience in the dog-eat-dog world of forked software, in particular, the "ecosystem" of MySQL.  The software that MariaDB draws the majority of their income from is MariaDB, which is a fork of MySQL.  If you don't know the history, well, you see, SUN bought MySQL, Oracle bought Sun, and Monty, in an environment of nearly Biblical levels of FUD, forked MySQL into MariaDB (both products are named after his daughters).

While MariaDB was originally envisioned as a "drop in/drop out" replacement, it has diverged so far from the Oracle product that it is no longer even "drop in" with the latest versions of MySQL. Oracle is adding amazing new …

[Read more]
Using MySQL triggers and views in Amazon RDS

I recently had an opportunity to migrate a customer from a physical server into Amazon’s RDS environment. In this particular case the customers’ platform makes extensive use of MySQL triggers and views.  I came across two significant issues that prevented me from following Amazon’s documentation, which basically states “use mysqldump” but doesn’t call out a specific method of dealing with MySQL triggers and views.

Amazon Relational Database Service (Amazon RDS) is a great platform if you’re looking for complete hands-off management of your MySQL environment, but comes at a cost in the area of flexibility, i.e. you don’t have SUPER privilege and this brings up additional challenges.

  1. You need to ensure you set log_bin_trust_function_creators=1 ( by default this is off, 0).
  2. You need to clean up your mysqldump syntax.

#1 is easy, you simply make a configuration change …

[Read more]
Here’s my favorite secret MySQL 5.6 feature. What’s yours?

MySQL 5.6 has a great many new features, including, but certainly not limited to a number of performance improvements. However, besides the widely talked-about features such as InnoDB support for full text search, optimizer, performance schema improvements and …

[Read more]
Get social and healthy with GlassFish

Two new stories have been published this week and both of them use GlassFish 3.1 in production. If you haven't seen them before, "Stories" is a blog with production use of GlassFish by small, medium, and large users with user questionnaires describing their experience with the rest of the community.

The first story is PointDebate, a "social network company that stir up, engage and give voice to most diverse opinions". They've been following pretty closely all the recent updates of GlassFish and now run the latest 3.1 version (only a month after it was released). They application is built using Java EE 6 and JSF in particular with RichFaces. The full architecture includes MySQL as well as EHCache and uses JMS to "decouple …

[Read more]
Get social and healthy with GlassFish

Two new stories have been published this week and both of them use GlassFish 3.1 in production. If you haven't seen them before, "Stories" is a blog with production use of GlassFish by small, medium, and large users with user questionnaires describing their experience with the rest of the community.

The first story is PointDebate, a "social network company that stir up, engage and give voice to most diverse opinions". They've been following pretty closely all the recent updates of GlassFish and now run the latest 3.1 version (only a month after it was released). They application is built using Java EE 6 and JSF in particular with RichFaces. The full architecture includes MySQL as well as EHCache and uses JMS to "decouple …

[Read more]
MySQL Partitioning – can save you or kill you

I wanted for a while to write about using MySQL Partitioning for Performance Optimization and I just got a relevant customer case to illustrate it. First you need to understand how partitions work internally. Partitions are on the low level are separate table. This means when you're doing lookup by partitioned key you will look at one (or some of) partitions, however lookups by other keys will need to perform lookup in all partitions and hence can be a lot slower. The gain from updates typically comes from having smaller BTREE on the active partition(s) which allows for a lot better fit. Having potentially fewer level in BTREE is not that significant issue.

So lets see at example:

PLAIN TEXT SQL:

  1. CREATE TABLE `tbl` (
  2.   `id` bigint(20) UNSIGNED AUTO_INCREMENT NOT NULL,
  3.   `uu` varchar(255) DEFAULT NULL,
[Read more]
How well does your table fits in innodb buffer pool ?

Understanding how well your tables and indexes fit to buffer pool are often very helpful to understand why some queries are IO bound and others not - it may be because the tables and indexes they are accessing are not in cache, for example being washed away by other queries. MySQL Server does not provide any information of this type, Percona Server however adds number of tables to Information Schema which makes this information possible. It is just few queries away:

PLAIN TEXT SQL:

  1. mysql> SELECT `schema` AS table_schema,innodb_sys_tables.name AS table_name,innodb_sys_indexes.name AS index_name,cnt,dirty,hashed,round(cnt*100/index_size,2) fit_pct   FROM (SELECT index_id,count(*) cnt,sum(dirty=1) dirty ,sum(hashed=1) hashed FROM innodb_buffer_pool_pages_index GROUP BY …
[Read more]
Thinking about running OPTIMIZE on your Innodb Table ? Stop!

Innodb/XtraDB tables do benefit from being reorganized often. You can get data physically laid out in primary key order as well as get better feel for primary key and index pages and so using less space,
it is just OPTIMIZE TABLE might not be best way to do it.

If you're running Innodb Plugin on Percona Server with XtraDB you get benefit of a great new feature - ability to build indexes by sort instead of via insertion. This process can be a lot faster, especially for large indexes which would get inserts in very random order, such as indexes on UUID column or something similar. It also produces a lot better fill factor. The problem is.... OPTIMIZE TABLE for Innodb tables does not get advantage of it for whatever reason.

Lets take a look at little benchmark I done by running OPTIMIZE for a second time on a table which is some 10 times larger than amount of memory I allocated for buffer pool:

[Read more]
Getting History of Table Sizes in MySQL

One data point which is very helpful but surprisingly few people have is the history of the table sizes. Projection of data growth is very important component for capacity planning and simply watching the growth of space used on partition is not very helpful.

Now as MySQL 5.0+ has information schema collecting and keeping this data is very easy:

PLAIN TEXT SQL:

  1. CREATE DATABASE stats;
  2. USE stats;
  3. CREATE TABLE `tables` (
  4. `DAY` date NOT NULL,
  5. `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
  6. `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
  7. `ENGINE` varchar(64) DEFAULT NULL,
  8. `TABLE_ROWS` bigint(21) UNSIGNED DEFAULT NULL,
  9. `DATA_LENGTH` bigint(21) UNSIGNED DEFAULT NULL,
  10. `INDEX_LENGTH` bigint(21) UNSIGNED DEFAULT NULL,
  11. `DATA_FREE` bigint(21) …
[Read more]
Showing entries 1 to 10 of 55
10 Older Entries »