views:

201

answers:

2

I work on large database (hundreds of GB) and Mysql now gives me more or less satisfaction. I hesitate to cassandra on launch.

What I want to know everything before, so this kind of DBMS NoSQL is supposed to be faster than MySQL?

Several points:

  • The change in the number of column on a row In Mysql, they must all be defined in advance. The columns set in the structure of the table. NoSQL in, they can be varied. There is real difference performance on a fixed structure ? and why ?

  • Do not make the relationship is beneficial for performance. Ok but I am not obliged to make a relational table Mysql. I use aggregated tables, ie tables that contain only data derived from other tables, I to prevent the joints which are too expensive. Again what level performance differences if I use this model in Mysql? To take one example, the author of http://www.rackspacecloud.com/blog/2010/05/12/cassandra-by-example/ insert X number of times the follower in the message USERLINE pusher. I could do that in MySQL.

  • Scalability, scalability, scalability ... I like it, do cassandra allow me to store my data on different servers (without SAN) ? I am not talking here of replication, I speak of a single NoSQL server across multiple physical server.

  • Live at the calculations. MySQL provides functions like me as SUM, AVG ... that are very useful to avoid me to re-aggregating my data in other tables. I have not seen equivalent cassandra ?

  • What about the indexes. On Mysql I index several fields in one. For example my tables have a primary key on multiple columns and I select are in functionaly. cassandra on how to write it? The concatenated for a single identifier for each row? I think I have not completely grasped the management of indexes. Are recalculated for the integration or upstream?

  • The asynchronous requests. A false argument that it seems to me, Mysql can be done with INSERT / UPDATE LOW_PRIORITY.

I think I go around. Thank you to enlighten me.

+2  A: 

I really don't understand why people compare data providers like Cassandra and MySQL together -- you're really comparing apples and oranges here.

Yes, NoSQL solutions can give better performance than SQL in some cases. But don't forget the reason they provide that speed -- they give up on several of the checks that you often take for granted in SQL. For example, you will not see things like transactions in a NoSQL system, nor are you going to have the kinds of joins and data aggregation features that you get as part of a SQL system. You get very few guarantees with respect to consistency of the data.

For 99% of applications it's simply not worth the time and effort. If you are facebook or twitter, where you have enormous of unstructured data, where you don't care if you actually lose some data in the shuffle of things, or have delays with respect to when data is available after it is inserted, NoSQL is just fine. However, for the vast majority of applications, you should still be sticking with SQL.

As for scalability, if an enormous site like Stack Overflow or Ebay can run on top of SQL, I don't see why your application cannot run on top of SQL.

Billy ONeal
I do not understand why there is such a difference in performance, in cases where the data structure is equal, given that I do not see that mysql can not to do compared to cassandra (otherwise destructured data).Actualy I run on SAS HD 15k tr/min, and I reaches the limit of my free available space on one server. So I have the choice to create a SAN (very expensive solution) or move on a storage-scalable DBMS (and if it's optimized then it's the fastest), or again, a software solution for target the server containing my target data (but take very long time to dev).
+1  A: 

Yes, you can definitely tune a MySQL to give you performance by cutting down a lot of the overheads. NoSQL cuts out the overheads by not having the feature to enable them in the first place.

The applications of NoSQL are very different from traditional SQL structure. SQLs are by default tuned for OLTP performance with normalized schema structures and the ability to have join queries etc. NoSQL on the other hand is a good fast read/write structure. A really good example would be an activity feed on twitter/facebook (I don't know if Twitter/FB use NoSQL I'm just taking an example).

Sagar V