浅谈MySQL中优化sql语句查询常用的30种方法.

浅谈MySQL中优化sql语句查询常用的30种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引。

2.应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

3.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
4.应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20
5.下面的查询也将导致全表扫描:
select id from t where name like'%abc%'
若要提高效率,可以考虑全文检索。

6.in和not in也要慎用,否则会导致全表扫描,如:
select id from t where num in(1,2,3)
对于连续的数值,能用between就不要用in了:
select id from t where num between1and3
7.如果在where子句中使用参数,也会导致全表扫描。

因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。

然而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。

如下面语句将进行全表扫描:
select id from t where num=@num
可以改为强制查询使用索引:
select id from t with(index(索引名))where num=@num
8.应尽量避免在where子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。

如:
select id from t where num/2=100
应改为:
select id from t where num=100*2
9.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。

如:
select id from t where substring(name,1,3)='abc'--name以abc开头的id
select id from t where datediff(day,createdate,'2005-11-30')=0--'2005-11-30'生成的id
应改为:
select id from t where name like'abc%'
select id from t where createdate>='2005-11-30'and createdate<'2005-12-1'
10.不要在where子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

11.在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

12.不要写一些没有意义的查询,如需要生成一个空表结构:
select col1,col2into#t from t where1=0
这类代码不会返回任何结果集,但是会消耗系统资源的,应改成这样:
create table#t(...)
13.很多时候用exists代替in是一个好的选择:
select num from a where num in(select num from b)
用下面的语句替换:
select num from a where exists(select1from b where num=a.num)
14.并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。

15.索引并不是越多越好,索引固然可以提高相应的select的效率,但同时也降低了insert及update的效率,因为insert或update时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。

一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。

16.应尽可能的避免更新clustered索引数据列,因为clustered索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序的调整,会耗费相当大的资源。

若应用系统需要频繁更新clustered索引数据列,那么需要考虑是否应将该索引建为clustered索引。

17.尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。

这是因为引擎在处理查询和连接时会逐个比较字符串中
每一个字符,而对于数字型而言只需要比较一次就够了。

18.尽可能的使用varchar/nvarchar代替char/nchar,因为首先变长字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。

19.任何地方都不要使用select*from t,用具体的字段列表代替“*”,不要返回用不到的任何字段。

20.尽量使用表变量来代替临时表。

如果表变量包含大量数据,请注意索引非常有限(只有主键索引)。

21.避免频繁创建和删除临时表,以减少系统表资源的消耗。

22.临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用表中的某个数据集时。

但是,对于一次性事件,最好使用导出表。

23.在新建临时表时,如果一次性插入数据量很大,那么可以使用select into代替create table,避免造成大量log,以提高速度;如果数据量不大,为了缓和系统表的资源,应先create table,然后insert。

24.如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先truncate table,然后drop table,这样可以避免系统表的较长时间锁定。

25.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。

26.使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。

27.与临时表一样,游标并不是不可使用。

对小型数据集使用FAST_FORWARD游标通常要优于其他逐行处理方法,尤其是在必须引用几个表才能获得所需的数据时。

在结果集中包括“合计”的例程通常要比使用游标执行的速度快。

如果开发时间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。

28.在所有的存储过程和触发器的开始处设置SET NOCOUNT ON,在结束时设置SET NOCOUNT OFF。

无需在执行存储过程和触发器的每个语句后向客户端发送DONE_IN_PROC消息。

29.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。

30.尽量避免大事务操作,提高系统并发能力。

合集下载

关系型数据库中多表查询效率优化方法

关系型数据库中多表查询效率优化方法

关系型数据库中多表查询效率优化方法在关系型数据库中,多表查询是常见的操作,尤其在复杂的业务逻辑中。

然而,多表查询可能导致性能问题,影响系统的响应时间和吞吐量。

为了优化多表查询的效率,我们可以采取以下几种方法:1. 索引设计优化:合理设计和使用索引可以显著提升多表查询的效率。

在多表查询中,尤其需要确保每个查询字段都有相应的索引。

为了避免过多的索引导致维护成本增加,我们需要深入了解查询的具体需求,并根据实际情况选择合适的索引策略。

2. 优化查询语句:编写高效的查询语句是提升多表查询效率的关键。

首先,避免使用SELECT *语句,尽量指定需要返回的字段,减少不必要的数据传输。

另外,合理利用JOIN语句,确保查询条件的精确性和正确性。

对于大数据量的表,我们可以采用分页查询的方式,减少每次查询返回的数据量。

3. 数据库设计优化:数据库设计的合理性直接关系到多表查询的效率。

我们可以考虑在关联表中添加冗余字段,以避免复杂的JOIN操作。

此外,合理划分表空间、分表、分区等技术手段也可以提高查询效率。

使用数据库调优工具,分析数据库的瓶颈,并进行必要的优化调整。

4. 数据库缓存和查询缓存:利用数据库缓存可以有效减少查询的IO操作,提高查询效率。

我们可以根据实际情况调整数据库缓存的大小,避免频繁的IO操作。

此外,合理使用查询缓存,避免重复的查询操作,提升查询的响应速度。

5. 表的拆分和冗余数据的管理:当一个表的数据量过大时,我们可以考虑将其拆分为多个子表,将不同的数据分离存储,以减少查询的数据量。

另外,合理管理冗余数据,避免重复查询和多次JOIN操作,可以显著提升查询效率。

6. 调整数据库参数和硬件资源:根据实际情况,我们可以调整数据库参数以优化多表查询的性能。

例如,调整数据库的缓存大小、最大连接数等参数。

此外,根据实际负载情况,合理分配硬件资源,增加CPU、内存等硬件资源,提高系统的并发处理能力。

7. 动态分区和查询优化器设置:对于拥有大量历史数据的数据库,我们可以考虑使用动态分区技术,将数据按时间段等条件进行分区存储,以提高查询效率。

mysql查询语句大全及用法

mysql查询语句大全及用法

mysql查询语句大全及用法MySQL是一种常用的关系型数据库管理系统,提供了强大的查询语言(SQL)来操作和管理数据库。

下面是一些常见的MySQL查询语句及其用法:1. SELECT语句:-用法:用于从数据库中检索数据。

-示例:SELECT * FROM 表名;(检索表中的所有数据)SELECT 列1, 列2 FROM 表名WHERE 条件;(根据条件检索指定列的数据)2. INSERT语句:-用法:用于向数据库中插入新的数据。

-示例:INSERT INTO 表名(列1, 列2) VALUES (值1, 值2);(向表中插入指定列的数据)3. UPDATE语句:-用法:用于更新数据库中的数据。

-示例:UPDATE 表名SET 列1 = 值1, 列2 = 值2 WHERE 条件;(根据条件更新指定列的数据)4. DELETE语句:-用法:用于从数据库中删除数据。

-示例:DELETE FROM 表名WHERE 条件;(根据条件删除数据)5. WHERE子句:-用法:用于在SELECT、UPDATE和DELETE语句中指定条件。

-示例:SELECT * FROM 表名WHERE 列= 值;(根据条件检索数据)6. ORDER BY子句:-用法:用于对结果进行排序。

-示例:SELECT * FROM 表名ORDER BY 列ASC/DESC;(根据指定列的升序或降序排序数据)7. GROUP BY子句:-用法:用于将结果分组。

-示例:SELECT 列, COUNT(*) FROM 表名GROUP BY 列;(根据指定列对数据进行分组并计数)8. JOIN语句:-用法:用于在多个表之间建立连接。

-示例:SELECT * FROM 表1 JOIN 表2 ON 表1.列= 表2.列;(根据指定列在两个表之间建立连接)9. DISTINCT关键字:-用法:用于返回唯一的结果。

-示例:SELECT DISTINCT 列FROM 表名;(返回指定列的唯一结果)10. LIMIT关键字:-用法:用于限制结果集的行数。

MySQL数据库的数据分析方法与应用案例

MySQL数据库的数据分析方法与应用案例

MySQL数据库的数据分析方法与应用案例MySQL是一种开源的关系型数据库管理系统,被广泛应用于各个领域的数据存储和管理。

它不仅具备高效的数据处理能力,还拥有强大的数据分析功能。

本文将介绍一些常用的MySQL数据分析方法以及相关的应用案例。

一、数据分析方法1. SQL查询SQL(Structured Query Language)是用于管理关系型数据库的标准查询语言。

通过SQL查询,我们可以通过简洁的语句从数据库中提取出所需的数据,进行统计分析和筛选。

例如,可以使用SELECT语句选择特定字段的数据,使用WHERE 子句进行条件过滤,使用GROUP BY子句进行分组,使用HAVING子句进行分组后的条件过滤,使用ORDER BY子句进行排序等。

SQL查询灵活简便,是数据分析的基础工具之一。

2. 聚合函数MySQL提供了多个聚合函数,用于对某一列或多列数据进行统计分析。

常用的聚合函数包括SUM、COUNT、AVG、MIN和MAX等。

例如,可以使用SUM 函数计算某一列的总和,使用AVG函数计算某一列的平均值,使用COUNT函数计算某一列的行数,使用MIN函数获取某一列的最小值,使用MAX函数获取某一列的最大值等。

聚合函数可以帮助我们快速进行数据分析和汇总。

3. 子查询子查询是一种在一个查询中嵌套另一个查询的方式。

通过子查询,我们可以根据某一查询的结果进行下一步的数据分析。

例如,可以使用子查询筛选出满足某一条件的数据,然后基于该子查询的结果进行进一步的汇总和分析。

子查询可以嵌套多层,通过合理使用子查询可以实现复杂的数据分析需求。

4. 连接查询连接查询是将多个表连接起来进行数据分析的一种方式。

MySQL提供了多种连接方式,如内连接、外连接和交叉连接等。

通过连接查询,我们可以将多个表中的数据按照一定的条件进行匹配,并获取满足条件的数据。

连接查询在实际应用中常用于多表关联、数据合并和数据比对等场景,对于复杂的数据分析十分有用。

mysql优化的几种方法

mysql优化的几种方法

mysql优化的几种方法
1. 合理设计数据库结构:合理划分表和建立索引,将重要的字段和常用的查询条件作为索引,减少数据库查询的时间消耗。

2. 减少数据表的联接:尽量避免多表联接操作,可以通过使用冗余字段或者嵌套查询的方式来减少联接操作。

3. 使用合适的数据类型:选择合适的数据类型可以减少数据库存储空间,提高查询和更新的性能。

例如,使用整型代替字符串类型存储数字数据。

4. 避免全表扫描:尽量使用索引来查询数据,避免全表扫描的性能瓶颈。

如果有大量的数据需要查询,可以考虑分批次查询或者使用分页查询的方式。

5. 批量插入和更新:使用批量插入和更新的方式可以减少数据库的IO操作,提高数据写入的效率。

可以使用INSERT
INTO ... VALUES (...),或者使用LOAD DATA INFILE进行批量导入数据。

6. 优化查询语句:使用EXPLAIN语句分析查询语句的执行计划,找到慢查询的原因,然后通过修改查询语句或者调整索引来优化查询性能。

7. 使用缓存技术:可以使用缓存系统(如Redis、Memcached)来缓存查询结果,减少数据库的访问次数,提高系统的响应速度。

8. 避免使用SELECT *:尽量避免使用SELECT *查询所有字段,只选择需要的字段,避免传输和处理不必要的数据。

9. 分库分表:当数据量过大时,可以使用分库分表的方式来拆分数据,减少单个数据库的负载,提高数据库的扩展能力和性能。

10. 定期优化和维护:定期进行数据库优化和维护,包括备份
数据、清理无用数据、重新组织表等,保持数据库的健康状态,提高系统的稳定性和性能。

MySQL常见优化问题及解决方案

MySQL常见优化问题及解决方案

MySQL常见优化问题及解决方案MySQL是一种常用的关系型数据库管理系统,广泛用于各种规模的应用程序中。

然而,由于各种原因,MySQL在实际使用中可能会出现一些性能瓶颈和优化问题。

本文将讨论MySQL常见的优化问题,并提供相应的解决方案。

一、查询性能优化1.1 查询语句缓慢当查询语句执行缓慢时,可能是由于多种原因导致的。

首先,我们可以通过使用EXPLAIN语句来分析查询语句的执行计划。

通过该语句,我们可以查看MySQL是如何优化和执行查询语句的。

根据执行计划,我们可以确定是否存在索引缺失、不合理的查询语句等问题,并进行相应的优化。

1.2 索引选择不当索引是提高查询性能的关键。

然而,不恰当的索引使用会导致性能下降。

一方面,如果太多的索引存在,会增加写操作的开销。

另一方面,如果索引选择不当,可能会导致查询语句执行速度变慢。

因此,我们需要根据具体的查询场景,选择合适的索引类型和字段,并及时优化现有的索引。

1.3 查询语句设计不规范查询语句的设计也是影响性能的重要因素。

首先,我们应该尽量避免使用SELECT *的方式查询数据,因为这样会导致不必要的数据传输和内存消耗。

其次,我们需要合理选择JOIN的表,并使用合适的连接方式,避免产生过多的临时表和不必要的数据交互。

此外,对于复杂的查询需求,可以考虑分解为多个简单的查询语句,并使用临时表或子查询进行优化。

二、连接性能优化2.1 连接过多当MySQL连接数过多时,可能会导致性能下降和资源消耗过大。

因此,我们需要根据实际情况合理设置连接数。

一方面,可以通过修改MySQL配置文件中的max_connections参数来限制最大连接数。

另一方面,可以使用连接池技术,如使用连接池管理工具或自行开发连接池模块,有效管理数据库连接,提高连接效率。

2.2 连接超时连接超时是指连接在一定时间内没有活动,被MySQL服务器主动关闭。

默认情况下,MySQL的连接超时时间是8小时。

MySQL中的批量操作和批量提交优化技巧

MySQL中的批量操作和批量提交优化技巧

MySQL中的批量操作和批量提交优化技巧MySQL是一种开源的关系型数据库管理系统,广泛应用于互联网企业和各种应用程序中。

在日常的数据库操作中,经常会涉及到批量操作和批量提交的需求,本文将介绍一些MySQL中的批量操作和批量提交的优化技巧。

一、批量操作的背景和意义在大部分应用中,数据库操作是性能瓶颈之一。

而频繁的单条SQL语句执行,会增加数据库的负载,降低系统性能。

而批量操作可以有效地减少与数据库的交互次数,提高数据操作的效率。

因此,学习和掌握批量操作技巧对于优化MySQL的性能非常重要。

二、批量插入数据的优化批量插入数据是指一次性将多条数据插入到数据库中。

常见的场景包括数据导入、数据迁移等。

常见的优化技巧有以下几点:1. 使用INSERT INTO ... VALUES(值1),(值2),(值3)的语法MySQL支持将多个值一次性插入到表中,可以大大减少插入语句的执行次数。

例如:INSERT INTO table_name (column1, column2)VALUES (value1, value2),(value3, value4),(value5, value6);2. 使用LOAD DATA INFILE语句LOAD DATA INFILE语句可以将数据文件直接导入到表中,效率非常高。

可以通过指定数据文件的路径和列分隔符等参数,将数据快速导入数据库中。

3. 提交间隔优化在批量插入数据时,可以通过设定合适的提交间隔来提高插入的效率。

默认情况下,MySQL会自动提交每一次插入操作,但是频繁的提交会增加IO开销。

可以通过设置SET autocommit=0来关闭自动提交,然后通过COMMIT语句手动执行提交操作。

在合适的时机使用COMMIT语句可以大大提高批量插入的效率。

三、批量更新数据的优化批量更新数据是指一次性修改多条数据的值。

常见的场景包括批量修改用户信息、批量更新数据状态等。

常见的优化技巧有以下几点:1. 使用UPDATE ... WHERE ...的语法MySQL支持一次性修改多条数据的值,可以根据条件将多条数据进行批量更新。

SQL优化的几种方法及总结

SQL优化的⼏种⽅法及总结优化⼤纲:通过explain 语句帮助选择更好的索引和写出更优化的查询语句。

SQL语句中的IN包含的值不应该过多。

当只需要⼀条数据的时候,使⽤limit 1。

如果限制条件中其他字段没有索引,尽量少⽤or。

尽量⽤union all代替union。

不使⽤ORDER BY RAND()。

区分in和exists、not in和not exists。

使⽤合理的分页⽅式以提⾼分页的效率。

查询的数据过⼤,可以考虑使⽤分段来进⾏查询。

避免在where⼦句中对字段进⾏null值判断。

避免在where⼦句中对字段进⾏表达式操作。

必要时可以使⽤force index来强制查询⾛某个索引。

注意查询范围,between、>、<等条件会造成后⾯的索引字段失效。

关于JOIN优化。

优化使⽤1、mysql explane ⽤法 explane显⽰了mysql如何使⽤索引来处理select语句以及连接表。

可以帮助更好的索引和写出更优化的查询语句。

EXPLAIN SELECT*FROM l_line WHERE `status` =1and create_at >'2019-04-11';explain字段列说明table:显⽰这⼀⾏的数据是关于哪张表的type:这是重要的列,显⽰连接使⽤了何种类型。

从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和allpossible_keys:显⽰可能应⽤在这张表中的索引。

如果为空,没有可能的索引。

可以为相关的域从where语句中选择⼀个合适的语句key:实际使⽤的索引。

如果为null,则没有使⽤索引。

很少的情况下,mysql会选择优化不⾜的索引。

这种情况下,可以在select语句中使⽤use index(indexname)来强制使⽤⼀个索引或者⽤ignore index(indexname)来强制mysql忽略索引key_len:使⽤的索引的长度。

sql提高查询效率的方法

sql提高查询效率的方法
SQL是一种用于管理关系型数据库的编程语言,查询是SQL使用最频繁的操作之一。

在处理大量数据时,查询效率的提高尤为重要。

以下是一些提高SQL查询效率的方法:
1. 索引优化:在数据库表中添加索引可以大大提高查询效率。

索引可以加快数据的检索速度,但同时也会增加数据写入的时间和空间开销。

对于经常被查询的字段,可以考虑添加索引。

2. 数据库分区:对于大型数据库,可以将数据分区以减少查询数据量。

分区可以根据数据的时间、ID等分类方式进行。

3. 避免使用SELECT *:当查询数据库时,应该只选择所需的列,而不是选择整个表的所有列。

这样可以减少查询数据量,提高查询效率。

4. 使用子查询:子查询可以将多个查询语句合并为一个查询语句,减少查询次数,提高查询效率。

5. 编写优化的SQL语句:优化SQL语句可以减少数据库的负载,提高查询效率。

例如,使用JOIN代替WHERE子句可以提高查询速度。

6. 合理使用缓存:对于经常被查询的数据,可以将其缓存下来,以减少数据库的读取次数,提高查询效率。

7. 数据库服务器优化:对于大型数据库,可以通过调整数据库服务器的优化参数来提高查询效率。

通过上述方法,可以提高SQL查询效率,在处理大量数据时可以显著减少查询时间和资源消耗。

SQL优化查询速度的方法

SQL优化查询速度的方法
1、优化SQL语句:
(1)改善SQL语句的语法和逻辑结构
SQL语法的效率取决于SQL的结构,要想提高SQL的查询结果,需要
有良好的结构来表达,常见的结构如下:
(1)尽可能使用join操作,而不是使用函数,比如使用inner
join或outer join替代union all或sub queries;
(2)优化where子句,尽量将where中的查询条件尽量细化,以提
高查询速度;
(3)尽量使用到sql的索引功能,使用合适的索引可以大大提高
sql语句的执行效率;
(4)考虑使用exists和not exists代替in和not in,因为in和not in只能执行单表查询,而exists和not exists可以实现多表查询,提高查询效率;
(5)尽量避免使用order by和group by,它们会对结果集进行排
序和分组,浪费大量时间;
(6)尽量避免使用like操作符,因为它会导致索引失效。

(2)利用缓存技术优化查询
缓存技术是指将查询条件放在缓存中,根据缓存的内容来提高查询速度。

在同一个环境中,如果时间跨度较长,可以考虑使用缓存技术,以提
高查询速度。

(3)优化sql语句的执行计划
sql语句的执行计划是指sql语句经过编译后,数据库系统根据具体的sql语句结构和条件给出的执行计划,优化sql语句的执行计划则指在sql语句的结构和条件不变的前提下。

数据库查询优化-20条必备sql优化技巧

数据库查询优化-20条必备sql优化技巧0、序⾔本⽂我们来谈谈项⽬中常⽤的 20 条 MySQL 优化⽅法,效率⾄少提⾼ 3倍!具体如下:1、使⽤ EXPLAIN 分析 SQL 语句是否合理使⽤ EXPLAIN 判断 SQL 语句是否合理使⽤索引,尽量避免 extra 列出现:Using File Sort、Using Temporary 等。

2、必须被索引重要SQL必须被索引:update、delete 的 where 条件列、order by、group by、distinct 字段、多表 join 字段。

3、联合索引对于联合索引来说,如果存在范围查询,⽐如between、>、<等条件时,会造成后⾯的索引字段失效。

对于联合索引来说,要遵守最左前缀法则:举列来说索引含有字段 id、name、school,可以直接⽤ id 字段,也可以 id、name 这样的顺序,但是 name; school 都⽆法使⽤这个索引。

所以在创建联合索引的时候⼀定要注意索引字段顺序,常⽤的查询字段放在最前⾯。

4、强制索引必要时可以使⽤ force index 来强制查询⾛某个索引: 有的时候MySQL优化器采取它认为合适的索引来检索 SQL 语句,但是可能它所采⽤的索引并不是我们想要的。

这时就可以采⽤ forceindex 来强制优化器使⽤我们制定的索引。

5、⽇期时间类型对于⾮标准的⽇期字段,例如字符串的⽇期字段,进⾏分区裁剪查询时会导致⽆法识辨,依旧⾛全表扫描。

尽管 TIMESTAMEP 存储空间只需要 datetime 的⼀半,然⽽由于类型 TIMESTAMP 存在性能问题,建议你还是尽可能使⽤类型 DATETIME。

(TIMESTAMP ⽇期存储的上限为2038-01-19 03:14:07,业务⽤ TIMESTAMP 存在风险;)6、禁⽌使⽤ SELECT *SELECT 只获取必要的字段,禁⽌使⽤ SELECT *。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档