You are previewing Professional NoSQL.

Professional NoSQL

Cover of Professional NoSQL by Shashank Tiwari Published by Wrox
  1. Cover
  2. Contents
  3. Introduction
  4. Part I: Getting Started
    1. Chapter 1: NoSQL: What It Is and Why You Need it
      1. Definition and Introduction
      2. Sorted Ordered Column-Oriented Stores
      3. Key/Value Stores
      4. Document Databases
      5. Graph Databases
      6. Summary
    2. Chapter 2: Hello NoSQL: Getting Initial Hands-on Experience
      1. First Impressions — Examining Two Simple Examples
      2. Working with Language Bindings
      3. Summary
    3. Chapter 3: Interfacing and Interacting with NoSQL
      1. If No SQL, Then What?
      2. Language Bindings for NoSQL Data Stores
      3. Summary
  5. Part II: Learning the NoSQL Basics
    1. Chapter 4: Understanding the Storage Architecture
      1. Working with Column-Oriented Databases
      2. HBase Distributed Storage Architecture
      3. Document Store Internals
      4. Understanding Key/Value Stores in Memcached and Redis
      5. Eventually Consistent Non-relational Databases
      6. Summary
    2. Chapter 5: Performing CRUD Operations
      1. Creating Records
      2. Accessing Data
      3. Updating and Deleting Data
      4. Summary
    3. Chapter 6: Querying NoSQL Stores
      1. Similarities Between SQL and MongoDB Query Features
      2. Accessing Data from Column-Oriented Databases Like HBase
      3. Querying Redis Data Stores
      4. Summary
    4. Chapter 7: Modifying Data Stores and Managing Evolution
      1. Changing Document Databases
      2. Schema Evolution in Column-Oriented Databases
      3. HBase Data Import and Export
      4. Data Evolution in Key/Value Stores
      5. Summary
    5. Chapter 8: Indexing and Ordering Data Sets
      1. Essential Concepts Behind a Database Index
      2. Indexing and Ordering in MongoDB
      3. Creating and Using Indexes in MongoDB
      4. Indexing and Ordering in CouchDB
      5. Indexing in Apache Cassandra
      6. Summary
    6. Chapter 9: Managing Transactions and Data Integrity
      2. Distributed ACID Systems
      3. Upholding CAP
      4. Consistency Implementations in a Few NoSQL Products
      5. Summary
  6. Part III: Gaining Proficiency with NoSQL
    1. Chapter 10: Using NoSQL in the Cloud
      1. Google App Engine Data Store
      2. Amazon SimpleDB
      3. Summary
    2. Chapter 11: Scalable Parallel Processing with MapReduce
      1. Understanding MapReduce
      2. MapReduce with HBase
      3. MapReduce Possibilities and Apache Mahout
      4. Summary
    3. Chapter 12: Analyzing Big Data with Hive
      1. Hive Basics
      2. Back to Movie Ratings
      3. Good Old SQL
      4. JOIN(s) in Hive QL
      5. Summary
    4. Chapter 13: Surveying Database Internals
      1. MongoDB Internals
      2. Membase Architecture
      3. Hypertable Under the Hood
      4. Apache Cassandra
      5. Berkeley DB
      6. Summary
  7. Part IV: Mastering NoSQL
    1. Chapter 14: Choosing Among NoSQL Flavors
      1. Comparing NoSQL Products
      2. Benchmarking Performance
      3. Contextual Comparison
      4. Summary
    2. Chapter 15: Coexistence
      1. Using MySQL as a NoSQL Solution
      2. Mostly Immutable Data Stores
      3. Web Frameworks and NoSQL
      4. Migrating from RDBMS to NoSQL
      5. Summary
    3. Chapter 16: Performance Tuning
      1. Goals of Parallel Algorithms
      2. Influencing Equations
      3. Partitioning
      4. Scheduling in Heterogeneous Environments
      5. Additional MapReduce Tuning
      6. HBase Coprocessors
      7. Leveraging Bloom Filters
      8. Summary
    4. Chapter 17: Tools and Utilities
      1. RRDTool
      2. Nagios
      3. Scribe
      4. Flume
      5. Chukwa
      6. Pig
      7. Nodetool
      8. OpenTSDB
      9. Solandra
      10. Hummingbird and C5t
      11. GeoCouch
      12. Alchemy Database
      13. Webdis
      14. Summary
  8. Appendix: Installation and Setup Instructions

Chapter 8

Indexing and Ordering Data Sets


  • Creating indexes that help enhance query performance
  • Creating and maintaining indexes in document databases and column-family databases
  • Ordering NoSQL data sets
  • Making effective design choices to create optimal indexes and ordering patterns

You have already learned the essentials of querying NoSQL databases. In this chapter, you take the next step to ensure that your queries are fast and efficient. In relational databases, a common way to optimize query performance is to leverage database indexes. Similar concepts apply to the world of NoSQL as well.

Indexes exist to increase data access performance. In theory, they are similar in behavior to the index in a book. When you need to search for a term or a word in a book, you have two options, namely:

  • Scan the entire book page by page to search for the term or word.
  • Look up the index at the end to find the pages where the term or word can be found and then browse to those specific pages.

Between these two options it’s a no-brainer to look up the index as opposed to a page-by-page scan to find the term. It makes the job easy and saves time.

In an analogous manner you have two choices when accessing a record in a database:

  • Look through the entire collection or data set item by item.
  • Leverage the index to get to the relevant data quickly.

Obviously, again the index lookup is a preferred choice. Although the book index and database index are analogous, stretching ...

The best content for your career. Discover unlimited learning on demand for around $1/day.