A #database #index is a data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure. Indexes are used to quickly locate data without having to search every row in a database table every time a database table is accessed. #Indexes can be created using one or more columns of a database table, providing the basis for both rapid random lookups and efficient access of ordered records.

An index is a copy of selected columns of data from a table, called a database key or simply key, that can be searched very efficiently that also includes a low-level disk block address or direct link to the complete row of data it was copied from. Some databases extend the power of indexing by letting developers create indexes on functions or expressions. For example, an index could be created on upper(last_name), which would only store the upper-case versions of the last_name field in the index. Another option sometimes supported is the use of partial indices, where index entries are created only for those records that satisfy some conditional expression. A further aspect of flexibility is to permit indexing on user-defined functions, as well as expressions formed from an assortment of built-in functions.


*** Topics of the Course ***
- Tree indexes: Part 1 (0:00)
- Tree indexes: Part 2 (1:14:20)
- Multi threaded index: concurrency control (2:29:20)

*** Attribution ***
Course Created by: CMU database group
Prof. Andy Pavlo (http://www.cs.cmu.edu/~pavlo/)
YouTube: https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA
License: Creative Commons Attribution license (reuse allowed)

*** Join our community ****
Join our FB Group: https://www.facebook.com/groups/cslesson
Like our FB Page: https://www.facebook.com/cslesson/
Website: https://cslesson.org