草庐IT

query-optimization

全部标签

MySQL,删除和索引提示

根据某些条件,我必须从包含超过1亿行的表中删除大约10K行。当我执行查询时,大约需要5分钟。我运行了一个解释计划(delete查询转换为select*,因为MySQL不支持explaindelete),发现MySQL使用了错误的索引.我的问题是:有没有办法告诉MySQL在删除期间使用哪个索引?如果没有,我该怎么办?选择到临时表然后从临时表中删除? 最佳答案 有indexhintsyntax.//ETA:遗憾的是,不适用于删除预计到达时间:您是否尝试过运行ANALYZETABLE$mytable?如果这样做没有效果,我认为您有2个选择

MySQL,删除和索引提示

根据某些条件,我必须从包含超过1亿行的表中删除大约10K行。当我执行查询时,大约需要5分钟。我运行了一个解释计划(delete查询转换为select*,因为MySQL不支持explaindelete),发现MySQL使用了错误的索引.我的问题是:有没有办法告诉MySQL在删除期间使用哪个索引?如果没有,我该怎么办?选择到临时表然后从临时表中删除? 最佳答案 有indexhintsyntax.//ETA:遗憾的是,不适用于删除预计到达时间:您是否尝试过运行ANALYZETABLE$mytable?如果这样做没有效果,我认为您有2个选择

database - MySQL中的加权平均计算?

我目前正在使用以下查询来获取一些数字:SELECTgid,count(gid),(SELECTcouFROMsizeWHEREgid=infor.gid)FROMinforWHEREid==4325GROUPBYgid;我在当前阶段得到的输出如下:+----------+-----------------+---------------------------------------------------------------+|gid|count(gid)|(SELECTgidFROMsizeWHEREgid=infor.gid)|+----------+------------

database - MySQL中的加权平均计算?

我目前正在使用以下查询来获取一些数字:SELECTgid,count(gid),(SELECTcouFROMsizeWHEREgid=infor.gid)FROMinforWHEREid==4325GROUPBYgid;我在当前阶段得到的输出如下:+----------+-----------------+---------------------------------------------------------------+|gid|count(gid)|(SELECTgidFROMsizeWHEREgid=infor.gid)|+----------+------------

php - fatal error : Call to a member function query() on null

我不确定这里出了什么问题。我只是按照在线教程进行操作,然后弹出了这些错误。我收到以下错误错误Notice:Undefinedvariable:dbinC:\xampp\htdocs\wisconsindairyfarmers\admin\login.phponline7Fatalerror:Calltoamemberfunctionquery()onnullinC:\xampp\htdocs\wisconsindairyfarmers\admin\login.phponline7代码query("SELECTCOUNT(UserId)FROMusersWHEREUserName='$u

php - fatal error : Call to a member function query() on null

我不确定这里出了什么问题。我只是按照在线教程进行操作,然后弹出了这些错误。我收到以下错误错误Notice:Undefinedvariable:dbinC:\xampp\htdocs\wisconsindairyfarmers\admin\login.phponline7Fatalerror:Calltoamemberfunctionquery()onnullinC:\xampp\htdocs\wisconsindairyfarmers\admin\login.phponline7代码query("SELECTCOUNT(UserId)FROMusersWHEREUserName='$u

php - Codeigniter:$query->free_result() 使用事件记录时?

在我从CodeIgniter模型中的事件记录查询中完成我的结果集后,我应该使用$query->free_result()还是ActiveRecord自动执行此操作? 最佳答案 PHP将在您的脚本完成后清理所有内容。但是,如果您在循环中有大量查询,则每次迭代后都不会清理结果。因此,如果您在循环中运行大量查询,您可能需要free_result()来清理内存。否则,没有必要。详情请看这里:https://www.codeigniter.com/user_guide/database/results.html

php - Codeigniter:$query->free_result() 使用事件记录时?

在我从CodeIgniter模型中的事件记录查询中完成我的结果集后,我应该使用$query->free_result()还是ActiveRecord自动执行此操作? 最佳答案 PHP将在您的脚本完成后清理所有内容。但是,如果您在循环中有大量查询,则每次迭代后都不会清理结果。因此,如果您在循环中运行大量查询,您可能需要free_result()来清理内存。否则,没有必要。详情请看这里:https://www.codeigniter.com/user_guide/database/results.html

MySQL WHERE 不是非常慢

下面是存储过程中的SQL语句(为简洁起见被截断):SELECT*FROMitemaWHEREa.orderIdNOTIN(SELECTorderIdFROMtable_excluded_item);此语句需要30秒左右!但是如果我删除内部SELECT查询,它会下降到1s。table_excluded_item并不大,但我怀疑内部查询的执行次数超出了需要。有没有更有效的方法? 最佳答案 使用LEFTJOINSELECTa.*FROMitemaLEFTJOINtable_excluded_itembONa.orderId=b.order

MySQL WHERE 不是非常慢

下面是存储过程中的SQL语句(为简洁起见被截断):SELECT*FROMitemaWHEREa.orderIdNOTIN(SELECTorderIdFROMtable_excluded_item);此语句需要30秒左右!但是如果我删除内部SELECT查询,它会下降到1s。table_excluded_item并不大,但我怀疑内部查询的执行次数超出了需要。有没有更有效的方法? 最佳答案 使用LEFTJOINSELECTa.*FROMitemaLEFTJOINtable_excluded_itembONa.orderId=b.order