title: Scalability of Using MySQL as a Key/Value Database
body: <p>I am interested to know the performance impacts of using MySQL as a key-value database vs. say Redis/MongoDB/CouchDB.  I have used both Redis and CouchDB in the past so I'm very familiar with their use cases, and know that it's better to store key/value pairs in say NoSQL vs. MySQL.</p>
  
  <p>But here's the situation:</p>
  
  <ul>
  <li>the bulk of our applications already have lots of MySQL tables</li>
  <li>We host everything on Heroku (which only has MongoDB and MySQL, and is basically 1-db-type per app)</li>
  <li>we don't want to be using multiple different databases in this case.</li>
  </ul>
  
  <p>So basically, I'm looking for some info on the scalability of having a key/value table in MySQL.  Maybe at three different arbitrary tiers:</p>
  
  <ul>
  <li>1000 writes per day</li>
  <li>1000 writes per hour</li>
  <li>1000 writes per second</li>
  <li>1000 reads per hour</li>
  <li>1000 reads per second</li>
  </ul>
  
  <p>A practical example is in building something like <a href="http://mixpanel.com/report/85/events" rel="noreferrer">MixPanel's Real-time Web Analytics Tracker</a>, which would require writing very often depending on traffic.</p>
  
  <p>Wordpress and other popular software use this all the time: Post has "Meta" model which is just key/value, so you can add arbitrary properties to an object which can be searched over.</p>
  
  <p>Another option is to store a serializable hash in a blob but that seems worse.</p>
  
  <p>What is your take?</p>