So what are some rules of thumb as to when you should and shouldn’t use InfiniDB? In general, InfiniDB may be a help to you when you have:
- Read-only databases or read-only parts of an application where response time speeds are important and row subsets (i.e. not all columns in a row) are being requested
- Data marts/ warehouses/ analytic applications where query patterns change and cannot predicted. In other words, it is difficult to continually know what columns will be requested and will need indexing
- Very large data volumes that are not served well by a general purpose database’s optimizer
- Scale out scenarios where you want to do parallel processing of queries across multiple machines (note: today, this is only possible with the Enterprise Edition of InfiniDB)
Places where you don’t want to use InfiniDB include:
- Transactional applications where you want InfiniDB to serve as a transactional back end database. Even though InfiniDB is transactional, the column-oriented nature of it means it will not do singleton/selective inserts and deletes as fast as a general purpose RDBMS will
- Query systems where all the columns in a table are requested and a primary key lookup is performed
- Databases that are very small in nature and are static/not growing





