sqlserver查询补全时间_SQL Server 与 MySQL 的执行计划

本文探讨了SQL Server与MySQL在数据库性能优化中的重要性,特别是索引对查询效率的影响。作者通过实例展示了如何创建、删除和修改索引,并分析了两种数据库的执行计划,强调了索引在减少全表扫描、提升查询速度中的作用。此外,还总结了数据库性能优化的原则和不走索引的情况,帮助读者理解如何进行有效的数据库性能调优。
摘要由CSDN通过智能技术生成

       SQLServer 与 MySQL 做为大部分BI项目的数据来源,用来作为搭建数据仓库的载体。很多BI项目被第三方实施公司忽略的两个点就是数据库性能和项目是否真正给甲方带来价值;在很大程度上BI项目是不需要考虑性能问题的,因为本身的数据量没有达到一个量级,本身的数据库厂商也在做数据库的升级和优化。而真正需要考虑性能的是那些项目本身面对的公司数据体量大、数据来源广、业务处理过程复杂。而在BI工程师和数据工程师以及报表工程师中关注这方面的问题也比较少,研究的重点不在数据库性能方面,而是在清洗数据的复杂过程。

       我本身也对数据库性能研究也比较弱,下面是我学习数据库执行计划做的一些笔记,仅代表我自己的一些思路,也许会有错误的地方。

       不管是SQL Server 还是MySQL 提到SQL执行效率 都有一个共同的点 就是索引。索引这种东西有好有坏,完全看个人能力;因为索引建好了能带来查询效率的提升,建不好就会比没有索引还要慢。

(SQL Server 版本2016 我已金融数仓数据库为例,MySQL 版本5.7.20 我已world库为例)

       这两种数据库创建、删除、修改索引的语句都差不多,我简单的列举一下他们的语句。

首先分别确定数据库中指定表创建有哪些索引

SQL Server:

SELECT column_id,b.name,c.name,d.type_desc,d.nameFROM sys.index_columns AS aLEFT JOIN sys.objects AS b ON a.OBJECT_ID = b.object_idLEFT JOIN sys.syscolumns AS c ON c.colid = a.column_id AND c.id = b.object_idLEFT JOIN sys.indexes AS d ON b.object_id = d.object_id AND a.index_id = d.index_idWHERE b.name = 'ODS_Dim_01_StockList'或者执行execute sp_helpindex @objname = 'ODS_Dim_01_StockList';--执行结果column_id  name  name  type_desc  name1  ODS_Dim_01_StockList  ts_code  NONCLUSTERED  StockIndex

MySQL:

mysql> show index from city;+-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| Table | Non_unique | Key_name    | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |+-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| city  |          0 | PRIMARY     |            1 | ID          | A         |        4188 |     NULL | NULL   |      | BTREE      |         |               || city  |          1 | CountryCode |            1 | CountryCode | A         |         232 |     NULL | NULL   |      | BTREE      |         |               |+-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+2 rows in set (0.00 sec)

创建、删除、修改索引的语句

SQL Server

--创建索引  唯一、聚集、非聚集   联合索引CREATE UNIQUE/CLUSTERED/NONCLUSTERED index 索引名 ON 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值