Showing entries 11316 to 11325 of 45394
« 10 Newer Entries | 10 Older Entries »
Use MySQL’s Strict Mode on all new Projects!

MySQL is a database that has been bending the SQL standard in ways that make it hard to move off MySQL. What may appear to be a clever technique for vendor lockin (or maybe just oversight of the standard) can be quite annoying in understanding the real meaning of the SQL language. One such example … Continue reading Use MySQL’s Strict Mode on all new Projects! →

Multi-source Replication with Galera Cluster for MySQL

November 20, 2014 By Severalnines

Multi-source replication means that one server can have multiple masters from which it replicates. Why multi-source? One good reason is to consolidate databases (e.g. merge your shards) for analytical reporting or as a centralized backup server. MariaDB 10 already has this feature, and MySQL 5.7 will also support it. 

It is possible to set up your Galera Cluster as an aggregator of your masters in a multi-source replication setup, we’ll walk you through the steps in this blog. Note that the howto is for Galera Cluster for MySQL (Codership) and Percona XtraDB Cluster. In a separate post, we’ll show you how to configure MariaDB Cluster 10 instead. If you would like to use MySQL Cluster (NDB) as aggregator, then check out this blog.

 

Galera …

[Read more]
In Case You Missed It - Developing MySQL Applications with Go

In this webinar, Baron Schwartz introduces the integration of Go and MySQL. He discusses idiomatic database/sql code, available drivers for MySQL and time saving tips and tricks.

If you did not have a chance to join the webinar, the slide deck is embedded below. You can also register for a recording here.

Using MySQL with Go - Golang's Database/SQL Driver from VividCortex

Improving InnoDB index statistics

The MySQL/MariaDB optimiser likes to know things like the cardinality of an index – that is, the number of distinct values the index holds. For a PRIMARY KEY, which only has unique values, the number is the same as the number of rows.  For an indexed column that is boolean (such as yes/no) the cardinality would be 2.

There’s more to it than that, but the point is that the optimiser needs some statistics from indexes in order to try and make somewhat sane decisions about which index to use for a particular query. The statistics also need to be updated when a significant number of rows have been added, deleted, or modified.

In MyISAM, ANALYZE TABLE does a tablescan where everything is tallied, and the index stats are updated. InnoDB, on the other hand, has always done “index dives”, looking at a small sample and deriving from that. That can be ok as a methodology, but unfortunately the history is awkward. The …

[Read more]
XtraBackup causing swap despite numa_interleave on mysqld

Jeremy Cole has an excellent article on why a mysqld instance will swap despite proper memory settings on modern hardware here. A quick hand-wave of a summary goes: in modern architecture, every process is, by default, limited to a 1/Nth of the available memory on a machine, where N is the number of cores, and will start to swap on disk when all the available memory in that 1/Nth is consumed.

 

The eventual solution for a large, single-instance mysqld-running machine is to enable numa_interleave in the mysqld_safe section of the config:

Implicitly, when that flag is set, mysqld is being started by mysqld_safe with a numactl flag that will spread the memory …

[Read more]
How a set of queries can be killed in MySQL using Percona Toolkit’s pt-kill

You might have encountered situations where you had to kill some specific select queries that were running for long periods and choking the database. This post will go into more detail with an example of report query offloading.

Report query (select) offloading to a slave server is a common practice to reduce the workload of the master DB server. The long running selects will be executed in the slave for report generation. I have observed in many cases where the slave used to get delayed or the slave DB encounters a slowdown due to some heavy long-running orphaned selects from some wrong reports.

There are two main ways to kill queries in MySQL: 1. use custom scripts that match on a regular expression, or 2. use a tool written and supported by Percona that is designed to kill queries based on matching conditions. Below is one script that will help you to kill those queries. The script will take the process list from MySQL and …

[Read more]
New ClusterControl User Guide for MySQL based Clusters

November 19, 2014 By Severalnines

Following the release of ClusterControl 1.2.8 with a range of cool new features, we have now also published a new ClusterControl User Guide that provides all the steps, tips & tricks to follow in order to successfully deploy, monitor, manage and scale database clusters.  

This user guide predominantly covers ClusterControl with MySQL-based clusters, namely:

  • Percona XtraDB Cluster
  • MariaDB Cluster
  • Galera Cluster for MySQL (Codership)
  • MySQL Cluster
  • MySQL Replication
  • A pool of MySQL single instances

 

New features in ClusterControl 1.2.8 include: 

  • Deployment and scaling of …
[Read more]
Analyzing Prepared Statement Performance With VividCortex

Optimizing MySQL performance requires the ability to inspect production query traffic. If you’re not seeing your application’s production workload, you’re missing a vital part of the picture. In particular, there are lots of performance optimizations your systems might be doing that you’re not aware of. One of these is using prepared statements for queries.

What Are Prepared Statements?

A prepared statement is a SQL statement with parameter placeholders which is sent to the database server and prepared for repeated execution. It’s a performance optimization as well as a security measure; it protects against attacks such as SQL injection, where an attacker hijacks unguarded string concatenation to produce malicious queries.

In MySQL, as well as in most databases, you first send the SQL to the server and ask for it to be prepared with placeholders for bind parameters. The server responds with a statement ID. You …

[Read more]
New XAMPP with PHP 5.5.19 & 5.6.3 versions

Hi Apache Friends!

We just released new versions of XAMPP for all platforms with latest PHP versions: 5.5.19 and 5.6.3. We simplified the versioning for XAMPP releases and we now base the version number on the bundled PHP version, so you can more easily tell what is in the stack.

In addition to the component upgrades below, we also included a new beta Welcome page, which includes new tutorials. We will continue to add more and would love to get your feedback!

The following guides are available for Windows and Linux in the current versions:

  • Backup and Restore MySQL Databases
  • Configure FTP Access
  • Configure Virtual Hosts
  • Configure Wildcard-Based Subdomains
  • Deploy an Application Using Git
  • Get Started Quickly with WordPress
  • Reset the MySQL Root Password
  • Send Mail with PHP
  • Troubleshoot Apache …
[Read more]
Avoiding MySQL ALTER table downtime

MySQL table alterations can interrupt production traffic causing bad customer experience or in worst cases, loss of revenue. Not all DBAs, developers, syadmins know MySQL well enough to avoid this pitfall. DBAs usually encounter these kinds of production interruptions when working with upgrade scripts that touch both application and database or if an inexperienced admin/dev engineer perform the schema change without knowing how MySQL operates internally.

Truths
* Direct MySQL ALTER table locks for duration of change (pre-5.6)
* Online DDL in MySQL 5.6 is not always online and may incurr locks
* Even with Percona Toolkit‘s pt-online-schema-change there are several workloads that can experience blocking

Here on the Percona MySQL …

[Read more]
Showing entries 11316 to 11325 of 45394
« 10 Newer Entries | 10 Older Entries »