小编Roy*_*Roy的帖子

MYSQL"IN"的表现

我分两步运行MYSQL查询.首先,我得到一个带有一个查询的id列表,然后使用第二个查询检索这些id的数据SELECT * FROM data WHERE id in (id1, id2 ...).我知道这听起来很糟糕,但我这样做是因为查询非常复杂; 第一个涉及大量的几何和触发测量,第二个涉及许多不同的连接.我确信它们可以写在一个查询中,但是我的MYSQL还不够好.

这种方法有效,但感觉不对; 加上我担心它不会扩展.目前我正在测试10,000个记录的数据库,在"IN"子句中有400个ID(即IN (id1, id2 ... id400))并且性能很好.但如果说有1,000,000条记录怎么办?

这种查询的性能瓶颈(速度,内存等)在哪里?关于如何重构这种查询的任何想法都很棒.(例如,如果值得对存储过程进行swot).

mysql performance

23
推荐指数
1
解决办法
2万
查看次数

从命令行运行脚本和从exec()运行PHP有什么区别?

我正在尝试使用PHP中的exec()运行Python脚本.当我使用cmd窗口直接运行它时,我的命令工作正常,但是当我exec()在PHP中运行它时会产生错误.

我的Python脚本使用NTLK来查找专有名词.示例命令:

"C:\Python25\python.exe" "C:\wamp\projects\python\trunk\tests\find_proper_nouns.py" "I went to London this morning" 
Run Code Online (Sandbox Code Playgroud)

[London]从我运行它时返回cmd,但是当我运行相同的命令时,在Apache日志中抛出一个错误exec().脚本正在运行正常 - 如果我更改python脚本,print "Hello World"那就返回正常了.

我知道任何人都知道如何解决这个NLTK错误是一个很大的问题,但我真的可以做任何指针,为什么运行它exec是不同的cmd.(命令相同).

我正在使用Apache 2.2.11在Windows 7上运行WAMP.

这是Apache日志中的错误:

Traceback (most recent call last):
  File "C:\wamp\projects\python\trunk\tests\find_proper_nouns_command_line.py", line 6, in <module>
    parts = nltk.pos_tag(text)
  File "C:\Python25\lib\site-packages\nltk\tag\__init__.py", line 62, in pos_tag
    tagger = nltk.data.load(_POS_TAGGER)
  File "C:\Python25\lib\site-packages\nltk\data.py", line 590, in load
    resource_val = pickle.load(_open(resource_url))
  File "C:\Python25\lib\site-packages\nltk\data.py", line 669, in _open
    return find(path).open()
  File "C:\Python25\lib\site-packages\nltk\data.py", line …
Run Code Online (Sandbox Code Playgroud)

php python apache exec nltk

7
推荐指数
2
解决办法
4877
查看次数

如何根据其他行中的值选择行

我有一个充满运动成绩的数据库。我想根据之前结果的一些特征来选择一些结果。这是数据库结构:

CREATE TABLE `results` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `date` DATETIME NOT NULL ,
    `home_score` INT NOT NULL ,
    `away_score` INT NOT NULL ,
    `home_team_id` INT NOT NULL ,
    `away_team_id` INT NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

所以我想做一些查询,比如“查找球队在前两场主场比赛中获胜的结果”——即按日期对特定的 home_team_id 排序,然后选择前两行中的每一行 home_score > away_score。

我知道这有点复杂,因此将非常感谢有关如何解决此问题的任何指示。我目前有一个 PHP 版本(选择所有行,然后执行这种类型的查询),但性能非常慢,并且使用了大量内存(数据库中有超过 20,000 行)。

编辑:感谢几个简洁的答案。不过,理想情况下,我希望能够在所有列上运行查询,而不仅仅是查看 W、D 或 L。一个更复杂的示例是“查找主队在之前的五个主场均获胜的所有结果至少两场比赛,客队在每场客场比赛中都至少输掉一球。”

mysql sql

5
推荐指数
1
解决办法
2287
查看次数

标签 统计

mysql ×2

apache ×1

exec ×1

nltk ×1

performance ×1

php ×1

python ×1

sql ×1