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,
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).
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 quantities 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.
playOrm is helping more and more OLTP systems get on top of noSQL systems. It is very SQL like but there are differences. You do need to partition tables that you expect to grow to VERY LARGE sizes and can then query into those partitions. You can even do joins on partitions. You keep your partition sizes the same size as typical RDBMS tables and you can scale to your hearts desire.
so for you indexing and calculation questions, I think more and more tools will be built on nosql systems. Anyways, that may be one solution to your issues.