如何编写高效的SQL查询语句(一)

2015-02-03 12:16:40 · 作者: · 浏览: 152

概述

如何编写性能比较高的SQL查询语句呢?两个方法:创建合理的索引;书写高效的SQL语句

索引的基本原理

索引分为聚集索引和非聚集索引。一个表只能创建一个聚集索引和N个非聚集索引,这句话的由来主要是由于索引的原理决定的。

数据库中的一张表不论你创建不创建索引,或者,不论你创建那种类型的索引,其在硬盘上的存储是一样的,那么,创建索引和不创建索引,或者,创建聚集索引和非聚集索引的区别在什么地方呢?

其区别是表内数据在内存的存在形式。对于没有创建索引的表,其加载到内存里时,就只有数据块;对于有聚集索引的表,其加载到内存时,会形成一棵树,且叶子节点上就是具体的数据;对于非聚集索引的表(没有聚集索引时),其加载内存时,真实数据为一个独立的块,其索引会形成一个索引树,索引数据的叶子节点对应的是真实数据块的rowid;对于既有非聚集索引,又有聚集索引的表,其加载到内存时,会形成两棵树,具体的数据和聚集索引树在一起,非聚集索引独自有一棵树,此时需要注意,其叶子节点中存放的时聚集索引的index,然后,通过聚集索引的index再去,聚集索引树中找到具体的数据。这个就是为什么一个表只能有一个聚集索引,可以有多个非聚集索引的原理。

\

vcq9vs3Kx8q508NTUUwgU2VydmVyIFByb2ZpbGVyuaS+3yi5pL7foapTUUwKIFNlcnZlciBQcm9maWxlcimjrLDv1vrO0sPHvODM/da00NC1xFNRTNPvvuS1xNa00NDH6b/2o6zV4tbWt73Kvbj8ysrTw9PaztLDx9Tas8zQ8tbQzt63qMzhyKFTUUzT777ktcTH6b/2oaM8L3A+Cgo8aDE+1PXR+bS0vai6z8DttcTL99L9o788L2gxPgo8cD4gICAgICAgzai5/cnPw+a1xLe9t6ijrM7Sw8e/ydLU1qq1wM7Sw8e1xFNRTNPvvuS1xLrDu7WjrLbU09q7tbXEU1FMo6zO0sPH0qrP67eoyei3qLXEvfjQ0M/g06a1xLjEseSjrLWrysejrLbU09q7tbXEU1FM0+++5KOsztLDx9Ta08W7r7XEyrG68qOs19y1w9Kq1qq1wMbkzsrM4rP21NrBy8TEwO+wyaOssrvE3Mu1ztK+zcTHw7S1xLjEwcujrMv50tSjrLTLyrGjrM7Sw8fQ6NKqwcvB7dK7uPa5pL7fo6yw79b6ztLDx7fWzvajrLy0o7rWtNDQvMa7rsrTzbyjqLLp0a+hqs/Uyr7WtNDQtcSy6dGvvMa7rqOpo6zNqLn91rTQ0LzGu66jrL/J1qq1wM7Sw8dTUUzT777k1NrWtNDQsunRr7XEyrG68qOsyrnTw8HLu7nKx8O709DKudPDy/fS/aGj1NrV4sDvvenJ3DPW0LLp0a+1xLe9yr2junRhYmxlCiBzY2Fuo6xpbmRleCBzY2Fuo6xpbmRleCBzZWVroaM8L3A+CjxwPiAgICAgICAgdGFibGUgc2Nhbr7NysfIq7HtyajD6KOs1rG909Ta1ebKtbXEyv2+3b/p1tC9+NDQyKuyv8mow+iju2luZGV4IHNjYW6+zcrH1NrL99L9yvfJz7340NDIq8mow+ijrLTLyrHI57n7yse+27yvy/fS/aOsvs274daxvdO1w7W9z+DTprXEyv2+3SjSttfTyc++zcrHvt/M5bXEyv2+3SmjrMjnufvKx7fHvtu8r8v30v2jrNTy0OjSqrvxtcPSttfTyc/P4NOmtcS+27yvy/fS/bz8o6zIu7rzo6zU2bj5vt2+27yvy/fS/bz81Nq+27yvy/fS/cr31tDV0rW9z+DTprXE1ebKtcr9vt2ju2luZGV4IHNjYW6+zcrHy/fS/cr3yc+1xMvRy/ejrNXi1ta3vcq9tcTKtc/WuPrG5MTasr+1xNStwO3T0LnYo6zS8s6q1eK49srHyvejrMv50tSjrLj5vt3Su9Cpy+O3qCi2/rLmtci1yCm/ydLUv+zL2bXEtqjOu7W9vt/M5bXEyv2+3aOs1eK49tKyt9bOqr7bvK+6zbfHvtu8r6Os1NrV4sDvsrvU2de4yvahozwvcD4KPHA+ICAgICAgIM2ouf3WtNDQvMa7rqOsztLDx7/J0tTWqrXAo6zO0sPHtcRTUUzT777k1NrEx7/pw7vT0Mq508PL99L9o6zIu7rzo6zO0sPHv8nS1LjEU1FM0+++5KOs0rK/ydLUtLS9qM/g06a1xMv30v2jrNXiwO/Q6NKq1qq1wKOssqKyu8rHyrnTw8HLy/fS/b7N0ru2qL/po6zI57n7xOO1xMr9vt23x7OjtcTQoaOsyOe5+8TjtLS9qLXEy/fS/bfHs6O1xLbgo6zEx8O0o6y/ycTcu+G05tTa1eLW1sfpv/ajurK7yOfIq7Hty/fS/bXEv+mho8v50tSjrNTa08W7r87Sw8e1xFNRTMqxo6zO0sPHvqHBv8350tHT0LXEy/fS/cnPv7/Co6OsyrXP1rK70NDBy6OsxMfDtKOsuPm+3cr9vt3Bv7XEtuDJ2aOsztLDx7+0v7SjrMrHt/HQ6NKq1Nm0tL2oz+DTprXEy/fS/aGjPC9wPgoKPGgxPtT1w7TR+bLFxNzK6dC0uN/Qp7XEU1FMsunRr9PvvuSjvzwvaDE+CjxwPjwvcD4KPHA+ICAgICAgIMnPw+bSu7/pxNrI3c7Sw8fWqrXAwcujrM7Sw8e1xFNRTNPvvuTTprjDvqG/ycTctcTP8tLR09C1xMv30v2/v8Kjo6zEx8O0o6zI57n7ssXE3Mq508O1vdLR09C1xMv30v3E2KO/xOO/ycTcu+HLtaOsztLDx7bgtLS9qNK70KnL99L9sru+zdDQwcvC76OsyrXU2rK70NDDv7j2wdC2vMrH0ru49sv30v2jrNXi0fmyu77Nv8nS1Mq508O1vcHLy/fS/cHLwu+jrLC01dXE48u1tcTV4tbWx+m/9qOsztLDx7nDx9Kyu7+8wsfG5Mv8o6y+zcjPzqpTUUzT777k1rTQ0LXEyrG68qOsyrnTw8HLy/fS/b7Nyse/7KOstavKx6OsztLP68u1tcTKx6OsvLDKscTjw7+49sHQyc+2vLS0vajJz8v30v2jrNKysru8+7XDxOPQtLXE