gpt4 book ai didi

sql - SQL 中日志记录表的适当查询和索引

转载 作者:行者123 更新时间:2023-11-29 03:50:55 27 4
gpt4 key购买 nike

假设有一个名为'log'的表,里面有大量的记录。

应用程序通常通过简单的 SQL 检索数据:

SELECT * 
FROM log
WHERE logLevel=2 AND (creationData BETWEEN ? AND ?)

logLevelcreationData 都有索引,但是记录的数量使得检索数据的时间更长。

我们如何解决这个问题?

最佳答案

查看您的执行计划/“EXPLAIN PLAN”结果 - 如果您正在检索大量数据,那么您几乎无法提高性能 - 您可以尝试更改您的 SELECT 语句只包含您感兴趣的列,但是它不会改变您正在执行的逻辑读取次数,因此我怀疑它对性能的影响可以忽略不计。

如果您只检索少量记录,那么 LogLevel 索引和 CreationDate 索引应该可以解决问题。

更新:SQL 服务器主要用于查询大型数据库的小子集(例如,从数百万的数据库中返回单个客户记录)。它并没有真正准备好返回真正的大数据集。如果您返回的数据量确实很大,那么您只能做一定数量的事情,所以我不得不问:

您实际上想要实现的是什么?

  • 如果您要向用户显示日志消息,那么他们一次只会对一小部分感兴趣,因此您可能还想研究分页 SQL 数据的有效方法 - 如果您一次只返回 500 条左右的记录,应该仍然非常快。

  • 如果您正在尝试进行某种统计分析,那么您可能希望将数据复制到更适合统计分析的数据存储中。 (不确定是什么,但这不是我的专业领域)

关于sql - SQL 中日志记录表的适当查询和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3494185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com