Friday 29 December 2017

sql server - What do Clustered and Non clustered index actually mean?

itemprop="text">


I have a limited exposure
to DB and have only used DB as an application programmer. I want to know about
Clustered and Non clustered
indexes
.
I googled and what I found was
:




A
clustered index is a special type of index that reorders the way
records in
the table are physically
stored. Therefore table can have only
one
clustered index. The leaf nodes
of a clustered index contain the
data
pages. A nonclustered index is a

special type of
index in which the
logical order of the index does not
match the
physical stored order of
the rows on disk. The leaf node of a

nonclustered index does not consist of
the data pages. Instead, the
leaf
nodes contain index
rows.




What
I found in SO was href="https://stackoverflow.com/questions/91688/what-are-the-differencespros-cons-between-clustered-and-non-clustered-indexes">What
are the differences between a clustered and a non-clustered
index?.




Can someone explain
this in plain English?


itemprop="text">
class="normal">Answer



With a
clustered index the rows are stored physically on the disk in the same order as the
index. Therefore, there can be only one clustered
index.



With a non clustered index there is a
second list that has pointers to the physical rows. You can have many non clustered
indices, although each new index will increase the time it takes to write new records.



It is generally faster to read from a clustered
index if you want to get back all the columns. You do not have to go first to the index
and then to the table.



Writing to a table with a
clustered index can be slower, if there is a need to rearrange the
data.



No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...