Sql优化技巧

     2023-04-13     9

关键词:

【中文标题】Sql优化技巧【英文标题】:Sql optimization Techniques 【发布时间】:2010-11-10 15:10:01 【问题描述】:

我想了解拥有近 80,000 条记录的数据库的优化技术, 优化的可能性列表

我在 android 平台上用于我的移动项目 我使用 sqlite,我需要很多时间来检索数据

谢谢

【问题讨论】:

您使用什么类型的数据库,您想要优化什么(速度、存储,两者兼而有之?) 对于那些说“不是一个真正的问题”的人,我认为这是一个真正的问题,只是措辞不是很好。 Rakesh,你能说说你认为什么是慢的,以及为什么你需要优化。 问一个一般的主题领域是合理的;此人只是要一份清单。 我在 android 平台上用于我的移动项目,我需要花费大量时间来检索数据 【参考方案1】:

好吧,只有 80,000 条记录,并且假设您的数据库设计良好且规范化,只需在 WHERE 或 ORDER BY 子句中经常使用的列上添加索引就足够了。

您可以使用其他更复杂的技术(例如对某些表进行非规范化、分区等),但这些技术通常只有在您处理数百万条记录时才会开始发挥作用。

预计到达时间:

我看到您更新了问题,提到这是在移动平台上 - 这可能会有所改变。

假设您根本无法削减数据集,您可以做的一件事是尝试对数据库进行一点分区。这里的想法是将您的一个大表拆分为几个较小的相同表,每个表都包含数据的子集。

给定行将进入哪些表取决于您选择如何对其进行分区。例如,如果您有一个范围为 0 到 10,000 的“customer_id”字段,您可能会将客户 0 - 2500 放在 table1 中,将 2,500 - 5,000 放在 table2 中,等等,将一个大表分成 4 个较小的表。然后,您的应用程序中有逻辑可以确定要查询哪个表(或多个表)以检索给定记录。

您可能希望以这样一种方式对数据进行分区,即您通常一次只需要查询一个分区。具体如何对数据进行分区取决于您拥有哪些字段以及如何使用它们,但总体思路是相同的。

【讨论】:

+1 - 好答案。与我的类似,但您对如何确定用于索引的列的建议更好。【参考方案2】: 创建索引

删除索引

标准化

去规范化

【讨论】:

【参考方案3】:

如今,80k 行并不多。巧妙的索引以及利用这些索引的查询将为您提供正确的服务。

【讨论】:

【参考方案4】:

了解如何显示查询执行图,然后了解它们的含义,然后相应地优化您的索引、表和查询。

【讨论】:

【参考方案5】:

如此广泛的主题,这取决于您要优化的内容。但基础:

索引。一个好的索引策略很重要,索引经常查询/排序的正确列很重要。但是,添加的索引越多,INSERT 和 UPDATE 的速度就越慢,因此需要权衡取舍。 维护。保持索引碎片整理和最新统计信息 优化查询。识别速度慢的查询(使用 SQL 2005 及更高版本提供的分析器/内置信息)并查看它们是否可以更有效地编写(例如,避免使用 CURSOR,尽可能使用基于集合的操作 参数化/SP。使用参数化 SQL 来查询数据库,而不是使用硬编码搜索值的临时 SQL。这将允许更好的执行计划缓存和重用。 从规范化的数据库架构开始,然后在适当的情况下取消规范化以提高性能

80,000 条记录并不多,所以我会停在那里(大型数据库,有数百万数据行,我建议对数据进行分区)

【讨论】:

SP 位颇有争议,对我来说是一件悬而未决的事情,但剩下的就是我要说的了。我认为很多人错过了那里的第三个选项,或者没有意识到他们的查询实际上有多不理想。 出于这个原因,我更喜欢说“参数化 SQL”而不是 SP,因为它可能会引起长时间的争论,我们会整天都在这里:D【参考方案6】:

您确实必须更具体地说明您想要做什么。您的业​​务组合是什么?你的表结构是什么? generic 建议是酌情使用索引,但对于这样一个通用问题,您不会得到太多帮助。

此外,80,000 条记录也不算什么。这是一个中等大小的表,不应该让任何体面的数据库出汗。

【讨论】:

【参考方案7】:

首先,如果您想要一个性能良好的数据库,索引确实是必不可少的。

不过,除此之外,这些技术取决于您需要优化的内容:大小、速度、内存等?

【讨论】:

【参考方案8】:

值得了解的一点是,在索引字段的where语句中使用函数会导致索引不被使用。

示例(甲骨文):

SELECT indexed_text FROM your_table WHERE upper(indexed_text) = 'UPPERCASE TEXT';

【讨论】:

聊聊sql优化的15个小技巧(代码片段)

前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相... 查看详情

sql优化技巧(代码片段)

...花在了数据库相关的IO操作上。所以对我们的SQL语句进行优化,可以提高软件的响应性能,带来更好的用户体验。  在开始介绍SQL优化技巧之前& 查看详情

Sql Server 查询优化技巧

】SqlServer查询优化技巧【英文标题】:SqlServerqueriesoptimizationtechniques【发布时间】:2012-05-2700:04:14【问题描述】:我的存储过程需要很长时间才能执行。任何人都可以建议我做什么来加快存储过程,除了使用一些好的做法来写下... 查看详情

sql语句优化技巧

1.对查询进行优化,要尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:selectidfromtwherenumisnull3.应尽量避免在... 查看详情

聊聊sql优化的15个小技巧(代码片段)

前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句ÿ... 查看详情

阿里一面:sql优化有哪些技巧?(代码片段)

...1;今天,Tom哥就带大家复习一个高频面试考点,SQL优化有哪些技巧?当然这个还是非常有实用价值的,工作中你也一定用的上。如果应用得当&#x 查看详情

关于优化在大量数据上执行的 Oracle SQL 查询的建议/技巧

】关于优化在大量数据上执行的OracleSQL查询的建议/技巧【英文标题】:Advices/tipsonoptimizinganOracleSQLqueryexecutingonsignificantvolumes【发布时间】:2013-03-1316:36:10【问题描述】:不要在看到下面的OracleSQL查询后立即运行!:)我将完整的查... 查看详情

30个mysql千万级大数据sql查询优化技巧详解

本文总结了30个mysql千万级大数据SQL查询优化技巧,特别适合大数据里的MYSQL使用。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null值判断,否则将... 查看详情

常用的sql优化技巧(代码片段)

从使用索引来考虑SQL语句避免索引列上的函数,如SUBSTR/UPPER/NVL/TO_CHAR/TO_DATE/TRUNC避免索引列上的计算公式:如果索引列上使用了计算公式,则索引不能使用,可以通过更改计算公式来避免不使用索引:Selecte.Enam... 查看详情

sql优化之sql进阶技巧(上)(代码片段)

...要目录如下: SQL的书写规范 SQL的一些进阶使用技巧 SQL的优化方法SQL的书写规范在介绍一些技巧之前,有必要强调一下规范,这一点我发现工作中经常被人忽略,其实遵循好的规范可读性会好很多,应该遵循哪些规范呢1、表名... 查看详情

sql性能优化技巧part1(代码片段)

参数是子查询时,使用EXISTS代替IN 如果IN的参数是(1,2,3)这样的值列表时,没啥问题,但如果参数是子查询时,就需要注意了。 比如,现在有如下两个表: 现在我们要查出同时存在于两个表的员工,即田中和铃... 查看详情

30个mysql千万级大数据sql查询优化技巧详解(代码片段)

....net/article/136701.htm本文总结了30个mysql千万级大数据SQL查询优化技巧,特别适合大数据里的MYSQL使用1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索 查看详情

SQL 脚本需要改进,可以使用一些技巧

...:59【问题描述】:我最近进行了一项测试,以弄清楚如何优化此SQL脚本,我从未编写过脚本,并且只创建查询以获取工作中的数据。这是脚本。表有有效的数据和连接,@GUID已经声明并且有NVARCHAR值。这是SQL脚本我对此很陌生,... 查看详情

mysql优化技巧(代码片段)

MySQL优化三大方向①优化MySQL所在服务器内核(此优化一般由运维人员完成)。②对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。③对SQL语句以及表优化。MySQL参数优化1:MySQL默认的最大连接数为100... 查看详情

mysql原理与优化,groupby优化技巧

​今天来看看MySQL中如何多GroupBy语句进行优化的。先创建tb_user表如下通过showindexfromtb_user;命令查看表,没有存在任何的索引。执行如下代码,查看SQL执行情况explainselectprofession,count(*)fromtb_usergroupbyprofession;发现返回结果中type为“... 查看详情

这些sql优化技巧握在手,面试可以横着走……

参考技术A一、SQL执行顺序二、基础SQL优化1、查询SQL尽量不要使用select*,而是具体字段1)反例2)正例3)理由2、避免在where子句中使用or来连接条件查询id为1或者薪水为3000的用户:1)反例2)正例使用unionall:分开两条SQL写:3)... 查看详情

oracle查询技巧与优化单表查询与排序(代码片段)

...f08;据我了解大多数中小公司都是没有的)为我们做SQL优化时那我们理应将SQL尽可能的写的高效简洁,而不是拿“我是一个java程序员或.NET程序员不擅长这些”为借口,博主本人也是 查看详情

聊聊sql优化的15个小技巧(代码片段)

前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句ÿ... 查看详情