My now long-running series of posts on getting max performance from a very simple MySQL Cluster setup (see details here) is continuing here. As a short intro to what I am trying out here, is to see if I can validate the claim that MySQL Cluster / NDB would be a good replacement for a Key Value Store (KVS) such as MongoDB. I test this in a rather simple single-server environment, but this is for a reason, just not a coincidence: The reason is that RAM is getting inexpensive and servers that can take a lot of RAM are also getting less expensive, which in turns means that the saying that many small servers are more cost-effective that few big ones, might not be as valid as it used to be. Also, I wanted to test what MySQL Cluster can do for me, from a KVS centric view. In short, I run on one server (16 Gb RAM, 8 cores) with all data in …
[Read more]Tomorrow, August 22 at 10:00am PDT, I’ll present a webinar called Full Text Search Throwdown. This is a no-nonsense performance comparison of solutions for full text indexing for MySQL applications, including:
- LIKE predicates and regular expressions
- MyISAM FULLTEXT indexes
- InnoDB FULLTEXT indexes
- Apache Solr
- Sphinx Search
- Trigraphs
I’ll compare the performance for building indexes and querying indexes.
If you’re developing an application with text search features, this will be a very practical and informative overview of your technology options!
Register for this free webinar at …
[Read more]Read the original article at 31 Essential Blogs for Startups & Scalability
So many blogs, so little time! Here’s our list of the best we’ve found. Currently our favorite reader is Pulse pictured left. Starting to play around with flipboard too.
Nuts & Bolts Technical
Slashdot
One of the original tech blogs, that still covers lots of
breaking news, and difficult topics. Very technical, with probing
commentary. Beware the actual comments though, as they’re often
full of immature and childish rants.
I work on weird and challenging performance issues in the cloud, often deep inside the operating system kernel. These have made for some interesting blog posts in the past, but there’s a lot more I don’t have time to share in that much detail. Here, I’ve summarized ten recent issues that myself and the other engineers at Joyent have worked on. I’d love to see similar summaries from other performance experts worldwide – it’s useful to see the types of issues people are working on and the tools they are using.
| # | Target … |
|---|
This tutorial will demonstrate the MySQL tool explain which is a
great tool offered by mysql to analzye queries for further
improvement. To run the explain tool you just have to type the
command EXPLAIN right before your select query and let
MySQL execute it. MySQL will not execute the select query
but will analyze it [...]
Tips to increase the performance of your MySQL queries. Use
EXPLAIN on your queries EXPLAIN YOUR QUERY will show details
of how mysql will execute your query. This is the first thing you
should use if you got slow queries. Use the “Slow Query Log” to
find the queries you have to optimize. If you don’t [...]
With its distributed, shared-nothing, real-time design, MySQL Cluster has attracted a lot of attention from developers who need to scale both read and write traffic with ultra-low latency and fault-tolerance, using commodity hardware. With many proven deployments in web, gaming, telecoms and mobile use-cases, MySQL Cluster is certainly able to meet these sorts of requirements.
But, as a distributed database, developers do need to think a little differently about data access patterns along with schema and query optimisations in order to get the best possible performance.
Sharing best practices developed by working with MySQL Cluster's largest users, we recently ran a Performance …
[Read more]I always hear newer and newer exotic way to store different types of data in MySQL. People are trying to solve the problem of storing complex and not necessary strictly structured data in databases which is fine. But I never understood why to try to be tricky with the simplest datatypes. For example Booleans. You would believe it’s easy. Yes or no. But there are several different way to say in MySQL that this is a Boolean.
1) The most common (consider as a best practice):
TINYINT unsigned NOT NULL
2) The trivial Boolean or Bool column type which is just a synonyms for TINYINT(1):
BOOLEAN NOT NULL DEFAULT 0
3) Declaring an enumaration with “true” and “false”:
ENUM('false', 'true') NOT NULL DEFAULT 'false'
4) The newest and weirdest I heard …
[Read more]A while ago I had a discussion with someone about the future of server infrastructure. Among other things, we were wondering whether companies will continue to run on dedicated servers or if eventually everyone just ends up in a Cloud environment. During the discussion I raised a point that in principle Cloud is a great idea that will keep attracting more and more people, but it is missing one important piece that stops many from using it – a high performance storage. Apparently, this has just changed.
Yesterday I received an e-mail announcing a new EC2 instance type – hi1.4xlarge. It features 16 logical CPUs (35 ECUs), 60GB of RAM, and… two 1TB SSD-based disk volumes! These are great specs that should work for nearly any database. Even assuming someone has a MySQL database larger than 2TB, not all tables will require fast storage, while more disk space can be easily added by attaching regular EBS volumes.
I decided …
[Read more]Engineering threads within a Data Node
A new version of the white paper “Guide to Optimizing Performance of the MySQL Cluster Database” has been released; download it here.
This paper steps you through:
- Identifying if your application is a good fit for MySQL Cluster
- Measuring performance and identifying problem performance areas to address
- Optimizing performance:
- Access patterns
- Using Adaptive Query Localization for complex Joins
- Distribution aware applications
- Batching operations …