Home |  MySQL Buzz |  FAQ |  Feeds |  Submit your blog feed |  Feedback |  Archive |  Aggregate feed RSS 2.0 English Deutsch Español Français Italiano 日本語 Русский
Showing entries 1 to 20 of 19221 Next 20 Older Entries
Liveblogging at Confoo: Blending NoSQL and SQL
+0 Vote Up -0Vote Down

Persistence Smoothie: Blending NoSQL and SQL – see user feedback and comments at http://joind.in/talk/view/1332.

Michael Bleigh from Intridea, high-end Ruby and Ruby on Rails consultants, build apps from start to finish, making it scalable. He’s written a lot of stuff, available at http://github.com/intridea. @mbleigh on twitter

NoSQL is a new way to think about persistence. Most NoSQL systems are not ACID compliant (Atomicity, Consistency, Isolation, Durability).

Generally, most NoSQL systems have:

  • Denormalization
  • Eventual Consistency
  • Schema-Free
  • Horizontal Scale

NoSQL tries to scale (more) simply, it is starting to go







  [Read more...]
Liveblogging at Confoo: [not just] PHP Performance by Rasmus Lerdorf
+0 Vote Up -0Vote Down

Most of this stuff is not PHP specific, and Python or Ruby or Java or .NET developers can use the tools in this talk.

The session on joind.in, with user comments/feedback, is at http://joind.in/talk/view/1320.

Slides are at http://talks.php.net/show/confoo10

“My name is Rasmus, I’ve been around for a long time. I’ve been doing this web stuff since 1992/1993.”

“Generally performance is not a PHP problem.” Webservers not config’d, no expire headers on images, no favicon.

Tools: Firefox/Firebug extension called YSlow (developed by yahoo) gives you a grade on your site.



  [Read more...]
Writing A Storage Engine for Drizzle, Part 2: CREATE TABLE
+0 Vote Up -0Vote Down

The DDL code paths for Drizzle are increasingly different from MySQL. For example, the embedded_innodb StorageEngine CREATE TABLE code path is completely different than what it would have to be for MySQL. This is because of a number of reasons, the primary one being that Drizzle uses a protobuf message to describe the table format instead of several data structures and a FRM file.

We are pretty close to having the table protobuf message format being final (there’s a few bits left to clean up, but expect them done Real Soon Now (TM)). You can see the definition (which is pretty simple to follow) in drizzled/message/table.proto. Also check out my

  [Read more...]
Surveying MySQL’s Popular Storage Engines
+0 Vote Up -3Vote Down

In this month’s Database Journal piece we look at the spectrum of MySQL storage engines available, and examine what some of their strengths and weaknesses are.

View the article here: Survey of MySQL Storage Engines

Emulating a 'top' CPU summary using /proc/stat and MySQL
+4 Vote Up -0Vote Down
In my last blog post, I showed how we can get some raw performance information from /proc into the MySQL database using a LOAD DATA INFILE (LDI) command.

I've modified that LDI call slightly to set the `other` column to equal the sum total of the CPU counters for those rows which begin with 'cpu'.

original:
other = IF(@the_key like 'cpu%', NULL , @val1);

new:
other = IF(@the_key like 'cpu%', user + nice + system + idle + iowait + irq + softirq + steal + guest, @val1);


Top provides a useful output that looks something like the following:
top - 04:59:14 up 14 days,  3:34,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 216 total,   1 running, 215 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8172108k total,  5115388k used,  3056720k free,   315180k buffers












  [Read more...]
Continuing the journey
+3 Vote Up -0Vote Down

A couple of months ago (December 1st for those playing along at home) it marked five years to the day that I started at MySQL AB (http://www.mysql.com) (now Sun, now Oracle). A good part of me is really surprised it was for that long and other parts surprised it wasn’t longer. Through MySQL and Sun, I met some pretty amazing people, worked with some really smart ones and formed really solid and awesome friendships. Of course, not everything was perfect (sometimes not even close), but we did have some fun.

Up until November 2008 (that’s 3 years and 11 months for those playing at home) I worked on MySQL Cluster (http://www.mysql.com/cluster). Still love the product and love how much better we’re making Drizzle so it’ll be the best SQL interface to NDB :)

The ideas behind Drizzle

  [Read more...]
SQL syntax with /*! c-style comments in MySQLdump
+0 Vote Up -0Vote Down
In mysql we have — , /* and /*! comments.  This post is mainly about very basic c-style comments. /*! : C-Style comments in MySQL We normally see comments in MySQLdump as follows: /*!40000 ALTER TABLE `a` DISABLE KEYS */; Or /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ These are actually C-Style comments which has embeded sql and treated specially [...] Related posts:
  • Calculate Mysql Memory Usage – Quick Stored Proc
  • MySQL Memory Usage Limits on 32 bit Linux
  • Perl Script for Analyze – Optimize – Repair Mysql Databases
  • Proper SQL table alias use conventions
    +0 Vote Up -0Vote Down

    After seeing quite some SQL statements over the years, something is bugging me: there is no consistent convention as for how to write an SQL query.

    I’m going to leave formatting, upper/lower-case issues aside, and discuss a small part of the SQL syntax: table aliases. Looking at three different queries, I will describe what I find to be problematic table alias use.

    Using the sakila database, take a look at the following queries:

    Query #1

    SELECT
     R.rental_date, C.customer_id, C.first_name, C.last_name
    FROM
     rental R
     JOIN customer C USING (customer_id)
    WHERE
     R.rental_date >= DATE('2005-10-01')
     AND C.store_id=1;
    

    The above looks for film

      [Read more...]
    [RH]acker
    +2 Vote Up -0Vote Down
    As I'm sure everyone has figured out by now, I've joined Rackspace where I will continue to work on Drizzle. I'm honestly thrilled with my new home, and there are a myriad of reasons for that. I think the one that I'm most excited about is that they are already the thing that all of the hype was about MySQL and RedHat and IBM wanting to become: A Service Company Rackspace doesn't want you to run Rackspace-Apache or RackspaceDB or EC-Rackspace. They want you to be able to run bog-standard Apache. And Linux. And MySQL. And PHP. And Drizzle. Then, Rackspace wants to be the best at providing you the service you need around those. No ludicrous MySQL Enterprise "we'll sell you a license to a free product, and then we'll include bundled with that a subscription a piece of non-free monitoring software" upselling. Rackspace actually wants to provide you a valuable  [Read more...]
    Talking at the University of Utah
    +0 Vote Up -0Vote Down
    Giving a talk at the University of Utah on everything from scaling, clustering, mysql, mysql internals, noSQL (Cassandra) to how to manage all this stuff. If you are there at University I'm bringing some Swag!

    Also I will upload the slides and put them here.
    Peter Gulutzan at the O’Reilly MySQL Conference
    Employee +1 Vote Up -1Vote Down

    I will be doing two talks at the O’Reilly MySQL Conference & Expo in Santa Clara CA.
    Performance Schema Tuesday April 13, 11:55am.
    Demos Of All The Big New Features Thursday April 15, 11:55am, with Konstantin Osipov.

    The other MySQL server engineers giving talks are:
    Alexander Barkov (globalization)
    Chuck Bell (backup)
    Mattias Jonsson (partitions)






      [Read more...]
    mk-schema-change? Check out ideas from oak-online-alter-table
    +1 Vote Up -0Vote Down

    In response to Mark Callaghan’s post mk-schema-change.

    I apologize for not commenting on the post itself, I do not hold a Facebook account. Anyway this is a long write, so it may as well deserve a post of its own.

    Some of the work Mark is describing already exists under openark kit’s oak-online-alter-table. Allow me to explain what I have gained there, and how the issue can be further pursued. There is relevance to Mark’s suggestion.

    oak-online-alter-table uses a combination of locks, chunks and triggers to achieve an almost non-blocking ALTER TABLE effect. I had a very short opportunity to

      [Read more...]
    Google Summer of Code projects, Drizzle
    +4 Vote Up -0Vote Down
    I've been doing Google Summer of Code projects with students since its creation. As far as intern programs go, it has been one of the most successful I have ever worked with.

    Last year was particularly awesome in that with Drizzle we were able to have students work on projects that made it back into Drizzle. While I have always seen good work created, it has always been hit or miss on whether the student's work has made it back into the project. Last year though we got more code in then ever before and I believe this year will be the same. We have had students go on to jobs thanks to the work they did on Drizzle.

    Interning gives you real experience, and it provides resume material which differentiates students who are going on to work in the software engineering field. Working on open source means that you have real



      [Read more...]
    mk-schema-change
    +4 Vote Up -0Vote Down
    I want a tool to make some long-running schema changes almost non-blocking. They should block access to a table for no more than a few seconds. I also want to do some of these in place on a master rather than on a slave that has been taken offline. I think this will work for most schema changes. It doesn't have to work for all of them and there are restrictions. This will not work when statements that modify the table for which the schema change is done reference other tables and the other tables are modified during the schema change. If production SQL cannot be changed to meet this restriction, then the schema change can be done on a slave that has been taken offline. Is anyone else interested in such a tool? A hand-waving description of the process is:
  • Create the new table on the master. The new table might use MyISAM without indexes initially to make the insert as fast as possible and
  •   [Read more...]
    Presenting on new MySQL Cluster 7.1 features at MySQL UC (and discount code!)
    Employee +1 Vote Up -0Vote Down

    Together with Berndt I’ll be presenting on the new features in MySQL Cluster 7.1 at this year’s MySQL Cluster User Conference – Santa Clara, on April 12th. If you’re interested in using MySQL Cluster but aren’t sure how to get started (or you’ve used it but would like some tips) then this is a great opportunity. Check out the presentation description.

    If you register

      [Read more...]
    MySQL Cluster on Windows – webinar replay available
    Employee +1 Vote Up -0Vote Down

    If you missed the recent webinar on running MySQL Cluster on Windows then you can watch/listen to the replay at http://www.mysql.com/news-and-events/on-demand-webinars/display-od-517.html (http://www.mysql.com/news-and-events/on-demand-webinars/display-od-517.html" target="_blank)

    Things to monitor on MySQL, the user’s perspective
    +0 Vote Up -0Vote Down

    Working on mycheckpoint, I have the intention of adding custom monitoring. That is, letting the user define things to monitor. I have my own thoughts, I would be grateful to get more input!

    What would the user want to monitor?

    Monitoring for the number of SELECT statements per second, InnoDB locks, slave replication lag etc. is very important, and monitoring utilities provide with this information. But what does that tell the end user? Not much.

    The experienced DBA may gain a lot. The user would be more interested in completely other kind of information. In between, some information is relevant to both.

    Say we were managing an on-line store. We want to monitor the health of the database. But the health of the database is inseparable from the health of the application. I mean, having little to no disk usage is fine,

      [Read more...]
    Its a cheat! Get Linux performance information from your MySQL database without shell access.
    +6 Vote Up -0Vote Down
    System administrators familiar with the Linux operating system use the tools in the 'procps' toolset all the time. Tools which read from /proc include top, iostat, vmstat, sar and others. The files in /proc contain useful information about the performance of the system. Most of the files are documented in the Linux kernel documentation. You can also check man 5 proc.

    Most performance monitoring tools invoke other tools like iostat to collect performance information instead of reading from the /proc filesytem itself. This begs the question, what can you do if you don't have access to those tools? Perhaps you are using a hosted Linux database and have no access to the underlying shell to execute tools like iostat or top? How could you gather information about the performance of the actual system without being

      [Read more...]
    Do you need more data in the slow query log?
    +5 Vote Up -0Vote Down
    Imagine you tried to use the slow query log to debug a performance problem. Does the current format have enough details?
    # Time: 100309 18:48:23
    # User@Host: root[root] @ localhost []
    # Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 1
    
    I have added Thread_id, Errno, Start and End. Thread_id can be used to find similar data from SHOW PROCESSLIST and the binlog. Errno is useful in many cases. Start and End are there for convenience. Can you suggest anything else that would be easy to add? Note that Rows_sent and Rows_examined are always zero for insert, update and delete statements. Feature request 49756 is open to change that. Maybe that is easy to fix.
    # Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 1\
               Thread_id: 3 Errno: 0
      [Read more...]
    Speaking at MySQL Conference: The Thinking Person's Guide to Data Warehouse Design
    +2 Vote Up -1Vote Down


    I'll be presenting "The Thinking Person's Guide to Data Warehouse Design" at the upcoming MySQL User conference. While a lot of people think that bad SQL code is the #1 wrecking ball of data warehouses and marts, the fact is that poor database design is the first cause of both downtime and bad performance. In my presentation, I'll do my best to show how up-front worRead More...

    Showing entries 1 to 20 of 19221 Next 20 Older Entries

    Planet MySQL © 1995-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc.,
    2010, Oracle Corporation and/or its affiliates.
    Content reproduced on this site is the property of the respective copyright holders.
    It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.