草庐IT

query-optimization

全部标签

php - 为什么 mysqli::multi_query 在一定数量的行后停止?

我正在尝试使用multi_query在表上运行相当大量的更新/插入。总共有大约14,000个查询,但该函数只执行了大约480个,然后它停止而没有错误,PHP继续执行下面片段之外的脚本:if($this->db->conn_id->multi_query($sql)){do{//echo$line.''.mysqli_sqlstate($this->db->conn_id).'';}while($this->db->conn_id->more_results()&&$this->db->conn_id->next_result());$this->message->set('Import

php - 货币的浮点精度 : using "round" function in MySQL query vs PHP vs Javascript

我正在处理美元金额。在MySQL数据库中,以下字段fee和rate(percentage)是DECIMAL类型,精度为2位小数。SELECTROUND(fee*(1-rate/100))),2)asprofitfromproducts由于查询只是返回值而不是将它们保存在变量中,精度问题*是否仍然存在(PHP或JS自带)?如果是这样,最好在PHP或JS中舍入float?*是的,我的意思是保存double时出现的精度问题,例如,1.5可能会保存为1.49999999 最佳答案 其他人可能已经提到了这一点,但我想让您知道我用PHP处理货币

mysql - 优化包含 30 000 多行的表的 LEFT JOIN

我有一个访问者可以发表评论的网站。我想添加回复评论的功能(即嵌套评论)。起初这个查询很快,但在我用现有评论(大约30000)填充表后,一个简单的查询如下:SELECTc.id,c2.idFROM(SELECTidFROMswb_commentsWHEREpageId=1411ORDERBYidDESCLIMIT10)AScLEFTJOINswb_commentsASc2ONc.id=c2.parentId超过2秒,没有childComments(!)。如何优化这样的查询?可能的解决方案是http://www.ferdychristant.com/blog//articles/DOMM-

MySQL 查询 : Long time spent in 'init' state

我正在对MySQL表(myisam引擎)执行更新,根据分析器,该表在“初始”状态下花费了过多的时间:mysql>showprofileforquery2;+----------------------+-----------+|Status|Duration|+----------------------+-----------+|starting|0.000057||checkingpermissions|0.000006||Openingtables|0.000020||Systemlock|0.000007||Tablelock|0.000005||init|21.911657|

mysql - 优化 MySQL 查询以避免扫描大量行

我正在运行一个使用类似于下表的表格的应用程序。有一个用于文章的表,还有另一个用于标签的表。我想按文章ID获取特定标签顺序的最新30篇文章。例如“acer”,下面的查询将完成这项工作,但它没有正确索引,因为如果有很多文章与特定标签相关,它会扫描很多行。如何在不扫描大量行的情况下运行查询以获得相同的结果?EXPLAINSELECTtitleFROMtag,articleWHEREtag='acer'ANDtag.article_id=article.idORDERBYtag.article_idDESCLIMIT0,30输出idselect_typetabletypepossible_ke

mysql - 如何优化这个简单的 JOIN+ORDER BY 查询?

我有两个mysql表:/*Tableusers*/CREATETABLEIFNOTEXISTS`users`(`Id`int(10)unsignedNOTNULLAUTO_INCREMENT,`DateRegistered`datetimeNOTNULL,PRIMARYKEY(`Id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;/*Tablestatistics_user*/CREATETABLEIFNOTEXISTS`statistics_user`(`UserId`int(10)unsignedNOTNULLAUTO_INCREMENT,`Sent_Vie

具有 JOIN 和 GROUP BY 优化的 MySQL 查询。可能吗?

我有两个表:gpnxuser和key_valuemysql>describegpnxuser;+--------------+--------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+--------------+--------------+------+-----+---------+----------------+|id|bigint(20)|NO|PRI|NULL|auto_increment||version|bigint(20)|NO||NULL||

mysql - 为什么 mysql 索引中的基数值不等于列值的不同计数

不久前,我开始优化mysql数据库的查询。我创建了一些索引并决定使用showindexfrom语法查看它们的参数。并看到基数不等于某些列的非重复计数。所以,我有tableCREATETABLE`item_owners`(`uid`varchar(255)NOTNULL,`version`bigint(20)NOTNULL,`type_id`varchar(255)NOTNULL,`owner_name`varchar(255)NOTNULL,`item_id`varchar(255)NOTNULL,`status_id`varchar(255)NOTNULL,PRIMARYKEY(`u

php - 如何在以下条件下为 4 个表编写 JOIN QUERY

我有4个表ACCOUNTS_TABLE、LINKS_TABLE、GROUPS_TABLE、KEYS_TABLE我需要获取allaccountsdetailsacct_typexxwithcountofLinks,groups&keywords。我试过这个查询,但它给出所有countas0SELECTacc.acct_id,acc.acct_type,count(link.id)aslink_count,link.account,groups.camp_id,count(groups.id)asgroup_count,count(keyword.key_id)askey_countFRO

mysql - 为什么这个查询使用 MySQL 这么慢?

昨天我发现服务器上运行了一个慢查询(这个查询耗时超过1分钟),看起来是这样的:selecta.*fromaleftjoinbona.hotel_id=b.hotel_idanda.hotel_type=b.hotel_typewhereb.hotel_idisnull表a中有40000多行,表b中有10000多行。已经在表b中的列hotel_id和hotel_type上创建了唯一键,如UNIQUEKEYidx_hotel_id(hotel_id,hotel_type).所以我使用explain关键字来检查这个sql的查询计划,我得到了如下结果:typekeyrows1SIMPLEaAL