Upload
ahmadmughal0312
View
394
Download
1
Embed Size (px)
Citation preview
Ahmad Ghulam Rasool
Data base indexing
Data Base Indexing• 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.
• Example :
How do database indexes work?
• Now, let’s say that we want to run a query to find all the details of any employees who are named ‘Jesus’? So, we decide to run a simple query like this:
• Example :• SELECT * FROM Employee WHERE Employee_Name = 'Jesus‘
What would happen without an index on the table?
• Well, the database software would literally have to look at every single row in the Customers table to see if the customerName for that row is ‘Jesus’
How a database index can help performance ?
• The whole point of having an index is to speed up search queries by essentially cutting down the number of records/rows in a table that need to be examined.
What kind of data structure is an index?
• B- trees are the most commonly used data structures for indexes.
• Time efficient • Deletions, and insertions can all be done
in logarithmic time• No need to sort data just use algorithm to
get sorted data like inorder,postorder etc• No need to search whole table
B-Tree
Another Data Structure is Hash Table
• Queries that compare for equality to a string can retrieve values very fast if they use a hash index.
• Example : SELECT * FROM Employee WHERE Employee_Name = ‘Jesus’
• Hash tables are not sorted data structures.• Suppose you want to find out all of the employees who
are less than 40 years old. How could you do that with a hash table index? Well, it’s not possible because a hash table is only good for looking up key value pairs.
Hash Table
What exactly is inside a database index?
• A database index does not store the values in the other columns of the same table.
• Example: Age and Employee_Address column values are not also stored in the index.
• An index stores a pointer to the table row.
How to create an index in SQL• Syntax: CREATE INDEX name_indexON
Employee (Employee_Name)
• How to create a multi-column index in SQL• Syntax: CREATE INDEX name_indexON
Employee (Employee_Name, Employee_Age)• ALTER TABLE tbl_name ADD PRIMARY KEY
(column_list): This statement adds a PRIMARY KEY, which means that indexed values must be unique and cannot be NULL
What is the cost of having a database index?
• It takes up space – and the larger your table, the larger your index.
• Whenever you add, delete, or update rows in the corresponding table, the same operations will have to be done to your index.
• Drop unused indexesSyntax: Alter table admin drop index searchAge
Index quries• SHOW INDEX FROM table_name• ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);• ALTER TABLE testalter_tbl DROP PRIMARY KEY;• CREATE TABLE lookup( id INT NOT NULL, name CHAR(20), PRIMARY KEY USING BTREE (id))
Cont
• CREATE TABLE lookup( id INT NOT NULL, name CHAR(20), PRIMARY KEY USING HASH (id))
Thank you