SQL查询最优化

来源:互联网 发布:网易微专业 mysql 编辑:程序博客网 时间:2024/05/16 00:57

影响数据库性能的因素主要包括以下几个:

1. 数据库的逻辑设计
2. 数据库的实际部署
3. 服务器的硬件规格
4. 索引与SQL语句的使用

 

在数据库逻辑设计方面
尽量做到第三范式(3NF)

 

在数据库实际部署方面
对于一些数据量比较大的数据表,可以考虑垂直或水平分割,并分别部署在不同的磁盘中,以提高查询的性能;另外将数据表与索引分开存放,也可以提高查询的性能。

 

在服务器硬件规格方面
如果在有预算许可的情况下,硬件升级也是不错的方案。硬件升级可分为垂直延伸(Scale up)和水平延伸(Scale out)两种,其中垂直延伸是指更换更高级别的CPU或更高转速的硬盘,增加CPU或RAM的数量等。水平延伸则是指使用多个服务器来建立服务器集群,增加处理容量,提高效率。

 

在索引与SQL语句使用方面
良好的索引规则是数据库效率的基础。简单地说,索引就像一本书的目录,透过目录可以快速地找到所需的内容,建立索引也是相同的导率。索引分为聚集索引(Cluster Index)与非聚集索引(Non-Cluster Index)两种。一个数据表(Table)只能有一个Cluster Index,但可以有多个Non-Cluster Index。Cluster Index与Non-Cluster Index的主要区别在于Cluster Index的顺序与数据实际存储的顺序有关,而Non-Cluster Index则与数据实际存储没有直接的关系。

 

SQL语句是管理与存取数据库的唯一途径,执行往往会耗用70%以上的系统资源,由此可见SQL语句对数据库性能的重要性。SQL语句的特色是易学易懂,但难于精通。相同的结果,可以有不同的写法,因此如何撰写具有良好性能的SQL语句是数据库开发人员和DBA的一大挑战。

原创粉丝点击