- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 mySql 中,我有下表(名为“staff”),其中包含 800 条记录(可能更多):
day start_time end_time
-----------------------------------------------------------------
2017-01-05 | 2017-01-05 08:00:00 2017-01-05 17:00:00
2017-01-06 | 2017-01-06 08:00:00 2017-01-06 17:00:00
2017-01-09 | 2017-01-09 08:00:00 2017-01-09 17:00:00
..... | ......
对于给定的日期时间,我的 python 函数在表 (col0) 中查找最近的一天并返回 col1 和 col2:
from datetime import datetime
import MySQLdb
import MySQLdb.cursors as cursors
import time
conn = MySQLdb.connect("localhost","root","","FOO_DATABASE", cursorclass = cursors.SSCursor )
def foo(x):
c.execute("SELECT start_time, end_time FROM staff WHERE Date >= %s ORDER BY Date LIMIT 1", (x,))
results = c.fetchone()
col1 = results[0]
col2 = results[1]
return col1, col2
#Date_time to look
date_time = datetime.strptime('2017-01-01 12:22:00', "%Y-%m-%d %H:%M:%S")
#The loop
start = time.time()
for i in range(60000):
c = conn.cursor()
foo(date_time)
c.close()
end = time.time()
print round((end - start), 2)
对于 60 000 次循环(这与我的程序无关)它在 21 秒内运行。
我期待着改进这一点。
编辑 1
好吧,刚刚在“day”列上创建了一个索引,速度快了 2 倍,9.13 秒。希望改进它,因为它对我的应用程序来说还不够
编辑 2
为了更清楚地说明循环传递了 60,000 个不同的值,使用固定值是为了说明目的。
在我的生产调度算法中,我必须测试许多调度组合,从而找出给定日期时间的工作时间。如果日期不在我的表中(例如周末),该函数将返回下一个开放日工作时间范围。希望一切都清楚!
最佳答案
你应该尝试准备好的语句:
from datetime import datetime
import MySQLdb
import MySQLdb.cursors as cursors
import time
conn = MySQLdb.connect("localhost","root","","FOO_DATABASE", cursorclass = cursors.SSCursor )
#Date_time to look
date_time = datetime.strptime('2017-01-01 12:22:00', "%Y-%m-%d %H:%M:%S")
#The loop
start = time.time()
c = conn.cursor()
for i in range(60000):
c.execute("SELECT start_time, end_time FROM staff WHERE Date >= :p_date ORDER BY Date LIMIT 1", {"p_date", date_time})
col1, col2 = c.fetchone()
c.close()
end = time.time()
print(round((end - start), 2))
或者甚至更好地尝试编写 sql,您将通过一次 sql 执行获得所有 60k 行。
关于 python : huge looping in SQL Table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44945004/
将此视为一个理论问题和实际问题。 一个表有 1.000.000 多条用户记录,需要从该表中提取数据,比如 50.000,仅使用 user_id。你希望 IN 表现如何?如果不好,这是唯一的选择还是还有
我需要解决最短路径算法问题(用 C 语言)。 基本上,我得到一个文件,其中包含(稀疏)矩阵的总行数和列数、非零条目(称为门)的数量以及最后这些条目的位置和值(行、列、值) )。在这个迷宫中,我必须找出
我使用 Libgdx 项目生成器创建了我的第一个 LibGDX 项目。然后我在 IntelliJ 中打开了该项目,它要求我在 build.gradle 文件中索引存储库。有问题的远程存储库是: Mav
我有一个服务器端服务,可以向我发送大量 DTO。我需要将它们放入 CellTable 中。大概有 10-200 行,我需要同时看到所有内容。 我有一个服务器端日志,用于跟踪我的服务的最后一个“人造”代
考虑这 3 种模型: # models.py class City(models.Model): name = models.CharField(max_length=50) class In
我有一个巨大的二进制矩阵,例如 100000 x 100000。 阅读本文http://www.cs.up.ac.za/cs/vpieterse/pub/PieterseEtAl_SAICSIT201
我有一些大的(200 GB 是正常的)平面数据文件,我想将它们存储在某种数据库中,以便可以快速访问并以数据逻辑组织的直观方式进行访问。将其视为大量非常长的录音,其中每个录音的长度(样本)相同,并且可以
我需要将两个大矩阵相乘并对它们的列进行排序。 import numpy a= numpy.random.rand(1000000, 100) b= numpy.random.rand(30000
CentOS7 禁用Transparent Huge Pages 自CentOS6版本开始引入了Transparent Huge Pages(THP),从CentOS7版本开始,该特性默认就会启用
是否有可以解释 .NET 程序集(可执行文件或 DLL 文件)大小的工具? 在过去,有一个 IDE 扩展可以详细说明项目使用的空间。 它应该显示大型代码文件: 和数据资源: .NET 世界有这样的事情
我正在尝试 Composer,并且有 RubyGems/Bundler 背景,它确实表现出了一些有趣的行为。 我尝试创建一个新的 Laravel 项目,令我惊讶的是,我发现最终得到的供应商文件夹大小超
我使用 mercurial 克隆了 vim 源代码,并运行了以下命令: make distclean ./configure --with-features=huge make sudo make i
我正在对不适合缓存的数组进行大量计算(这里是导数,但看起来类似于图像操作),这意味着 CPU 必须在缓存中加载部分,计算,然后加载另一部分,等等。但是因为在计算的形状中,一些数据被加载、卸载和重新加载
我有一个巨大的选择查询,我必须在其中加入超过 85 个表。我在运行查询时不断收到错误消息,如果我在收缩整个语句时重新运行查询,它运行良好。 查看下面的部分连接,它一直执行到表 85: select $
在 mySql 中,我有下表(名为“staff”),其中包含 800 条记录(可能更多): day start_time end_time
这更像是一个理论查询,但我有一个复杂的联接(导致主表中多达 1900 条记录,再加上联接中的所有子结果表——如下所示的联接),生成的网页在我的本地计算机上需要 5-10 分钟才能处理并完成构建。我意识
所以我有一个包含 4 016 515 759 行的表格。我需要将我的 address_id 字段的字段类型从 int 更改为 bigint,它也是一个 FOREIGN KEY。 我刚刚测试了这个查询:
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
这是我的机器详细信息 (ubuntu): $uname -a Linux rex-think 3.13.0-46-generic#76-Ubuntu SMP Thu Feb 26 18:52:13 U
我使用类型修饰符(far,near,huge) 普通变量而不是指针,发现这些指针类型修饰符只适用于全局普通变量,但使用时会产生错误 block 的局部变量。 int near a,far b,huge
我是一名优秀的程序员,十分优秀!