我正在使用PHP和mysql在我的localhst中开发一个脚本,我正在处理大数据(大约有2百万条用于科学研究的记录)
我需要在生活中调用一些查询(分析数据并准备一些数据); 但是例如需要很长时间:现在我的脚本正在分析一些数据超过4个小时
我知道我的数据库优化可能会有一些问题我不是专家
例如,我只是发现"索引"对于加速查询很有用,但即使索引某些列我的脚本仍然很慢
任何想法如何加快我的脚本(在PHP和MySQL中)
我使用XAMPP作为服务器包
非常感谢您的帮助
最好的祝福
更新1:
$sql = "select * from urls";//10,000 record of cached HTML documents
$result = $DB->query($sql);
while($row = $DB->fetch_array($result)){
$url_id = $row["id"];
$content = $row["content"];
$dom = new DOMDocument();
@$dom->loadHTML($content);
$xpath = new DOMXPath($dom);
$row = $xpath->evaluate("/html/body//a");
for($i = 0; $i < $row->length; $i++) {
// lots of the code here to deal with the HTML documents and some update and insert and select queries which query another table which has …Run Code Online (Sandbox Code Playgroud) 我注意到当函数setModel在并行线程中执行时(我尝试了threading.Timer或threading.thread),我得到了这个:
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QHeaderView(0x1c93ed0), parent's thread is QThread(0xb179c0), current thread is QThread(0x23dce38)
QObject::startTimer: timers cannot be started from another thread
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QTreeView(0xc65060), parent's thread is QThread(0xb179c0), current thread is QThread(0x23dce38)
QObject::startTimer: timers cannot be started from another thread
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解决这个问题吗?
我在这里的砖墙.是否可以将一个bool复制到另一个bool的ref.考虑这段代码...
bool a = false;
bool b = a;
Run Code Online (Sandbox Code Playgroud)
b现在是一个完全独立的bool,其值为false.如果我随后更改了a,则对b没有影响.是否有可能通过ref做出a = b?我该怎么办?
非常感谢
我不知道为什么红宝石给and,or少优先级比&&,||和赋值运算符?有什么缘故吗?
在为C++类创建Lua绑定时,我应该返回表还是userdata对象?
有谁知道每种方法的优缺点?
到目前为止,我编写或使用过的所有.NET远程处理代码都已公开为SingleCall.
我遇到了一个托管在Windows服务中的.NET远程处理组件,该服务作为Singleton公开.
此对象有可能被多个客户端同时调用,并且没有锁定或其他规定来保护其内部状态.
如果我正确理解Singleton那么这可能会导致大问题正确吗?
我正在使用keydown事件来检测按下的键,并为各种操作提供了几个键组合.
if (e.KeyCode == Keys.C && e.Modifiers == Keys.Control && e.Modifiers == Keys.Shift)
{
//Do work
}
else if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
{
//Paste
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我点击Ctrl+ Shift+ 的键组合C不起作用.我已经重新订购了它们,并将它置于顶部,认为它可能是来自Ctrl+的干扰C,甚至删除Ctrl+ C以查看它是否导致问题.它仍然无法正常工作.我知道它可能非常简单,但不能完全理解它是什么.我的所有1修饰符+ 1组合键都可以正常工作,只要我添加第二个修饰符就是它不再有效.
我正在尝试创建一个将通过电子邮件发送的报告.Outlook是我们环境中的必需应用程序.报告的内容是HTML,它使用基于表格的布局.有些内容需要正确对齐.但是,Outlook似乎没有将内容显示为在表格单元格中右对齐.
如何右键对齐将要传递到Outlook的HTML中的内容?
我有一个加/减系统,用户可以在博客文章中添加一个或减一个.
我的数据库(MySQL)表如下所示:userid entry id vote - 这是+1或-1 timeStamp
我已将timeStamp设置为默认为CURRENT_TIMESTAMP.
我必须使用方法plus()和minus().两者都做同样的事情但是一个在'投票'中插入+1而另一个插入-1.由于(userid,entryid)是主键,我使用REPLACE INTO.INSERT INTO会出现重复错误.INSERT IGNORE不允许用户将投票从+1更改为-1
"REPLACE INTO votes(userid, entryid, vote) VALUES(:uid,:eid, -1)";
Run Code Online (Sandbox Code Playgroud)
忽略值..
虽然REPLACE INTO工作正常,但我按时间戳排序,所以当有人在投票后第二次点击+1时,它会更新时间戳,这会将其带到列表的顶部.
有人知道解决方案吗?
ps对不起的标题抱歉.想不出一个合适的人.
我需要以编程方式将html打印到打印机.我不想打印html标签,我希望在打印前解析html标签.
此代码将html功能和数据添加到名为document的htm文档中.然后我将输出发送到名为itext.html的文件
HtmlWriter writer2 = HtmlWriter.getInstance(document,new FileOutputStream("itext.html"));
我知道需要以某种方式解析该html文件并打印它,而无需在浏览器中打开它并转到文件和打印.