草庐IT

query-optimization

全部标签

mysql - 涉及范围时,索引中第一个具有较高基数的列?

CREATETABLE`files`(`did`int(10)unsignedNOTNULLDEFAULT'0',`filename`varbinary(200)NOTNULL,`ext`varbinary(5)DEFAULTNULL,`fsize`doubleDEFAULTNULL,`filetime`datetimeDEFAULTNULL,PRIMARYKEY(`did`,`filename`),KEY`fe`(`filetime`,`ext`),--This?KEY`ef`(`ext`,`filetime`)--orThis?)ENGINE=InnoDBDEFAULTCHARSE

MySQL EXPLAIN 'type' 由 'range' 变为 'ref' where 语句中的日期更改时?

我一直在测试不同的想法,以优化我们工作中系统中的一些表格。今天我遇到了一个表格,它跟踪我们系统中每辆车的每一个View。在下面创建表格。SHOWCREATETABLEvehicle_view_tracking;CREATETABLE`vehicle_view_tracking`(`vehicle_view_tracking_id`int(10)unsignedNOTNULLAUTO_INCREMENT,`public_key`varchar(45)NOTNULL,`vehicle_id`int(10)unsignedNOTNULL,`landing_url`longtextNOTNUL

mysql - 如何优化 MySQL UPDATE

请问有什么办法可以在MySql中优化这个更新查询吗?UPDATEtable1t1SETt1.column=(SELECTMIN(t2.column)FROMtable2t2WHEREt1.id=t2.id);两个表都有大约250000条记录。表结构:CREATETABLE`table1`(`id`int(11)NOTNULL,`column`datetimeNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8CREATETABLE`table2`(`code`int(11)NOTNULL,`id`int(11)NOTNULL

php - utf8 字符在转换为 mysqli_query() 后错误地显示为问号

我的数据库是latin1_swedish_ci,但所有包含外来字符(德语、土耳其语...)的表都是utf8_general_ci。在升级到php5.6之前,我用过mysql_query("SETCHARACTERSETutf8;");mysql_query("SETNAMESutf8");之前mysql_query()并且所有内容都正确显示在我的页面中(页眉中的)。全部转换后mysql_query(...)至mysqli_query(id,...)并在php5.6下运行,现在所有的外语都被加扰了?和...切换回php5.4没有帮助。phpMyAdmin正确显示mysql数据库(未更改)

php - PHP下的mysql_query是阻塞函数吗?

假设我正在使用mysql_query在服务器上执行多个查询。每个查询的结果都会影响后续的查询。mysql_query的每次调用都会在控制移至下一个调用之前完全执行吗?编辑:我忘了说,我没有使用事务性存储引擎。 最佳答案 是的,MySQL服务器必须返回数据并完成查询,然后PHP才能进行下一步操作,无论是分配返回值还是进行到下一行代码。mysql_query("INSERTINTOyVALUES(x,1)");mysql_query("SELECTxFROMyWHEREz=1");mysql_query("UPDATEySETx=x+1

mysql - 查看是否至少返回一行的最快查询

我只需要知道查询是否返回记录。我当然可以这样做:SELECTCOUNT(*)FROMtblWHEREconds;但这会返回准确的行数(当然),我不需要这个开销。所以我想到了这个查询:SELECTCOUNT(*)FROM(SELECTidFROMtblWHEREcondsLIMIT1)ast1将内部查询限制为1。这样更快吗?或者考虑到我正在做一个子查询,它取消了LIMIT1的好处?注意:每个人都在问自己,我不能将LIMIT1应用于第一个查询,因为它不起作用 最佳答案 第二个查询中的inner-select是多余的。如果您只想检查至少一

php - 奇怪而烦人的错误 : Call to undefined function mysql_query()

这个问题在这里已经有了答案:Whyshouldn'tIusemysql_*functionsinPHP?(14个答案)关闭6年前。我已经在这里待了一个多小时了,我可以连接到我的数据库和所有(没有给出任何错误)但是当我尝试使用时出现以下错误“mysql_query($query);”Calltoundefinedfunctionmysql_query()我已经尝试启用:extension=php_mysql.dllextension=php_mysqli.dll并且我添加了:extension_dir="ext"extension=php_mysql.dll在导入列表的末尾。在我所做的每

php - 在 SELECT 查询中使用 *

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Whichisfaster/best?SELECT*orSELECTcolumn1,colum2,column3,etc.我目前正在将用MySQL3和PHP4编写的应用程序移植到MySQL5和PHP5。在分析中,我发现了几个使用“select*fromtablename”的SQL查询,即使在PHP中只处理了一个列(字段)。该表有将近60列,并且有一个主键。在大多数情况下,唯一使用的列是id,它是主键。如果我使用明确提及列名而不是*的查询,是否会提高性能?(在这个应用程序中只有一个方法我们需要所有的列,所有其他

mysql - 为什么 LEFT JOIN 比 INNER JOIN 慢?

我有两个查询,第一个(内连接)超快,第二个(左连接)超慢。如何使第二个查询更快?EXPLAINSELECTsaved.emailFROMsavedINNERJOINfinishedONfinished.email=saved.email;idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra1SIMPLEfinishedindexNULLemail258NULL32168Usingindex1SIMPLEsavedrefemailemail383func1Usingwhere;UsingindexEXPLAINSELECTsa

mysql - 存储数据库记录的数量是多余的吗?

我正在使用Rails和MySQL,并且有一个基于行计数的效率问题。我有一个Project模型,它has_many:donations。我想计算一个项目的唯一捐助者的数量。projects表中有一个名为num_donors的字段,并在创建新捐助者时递增它是个好主意吗?或者像@num_donors=Donor.count(:select=>'DISTINCTuser_id')这样的东西会由于数据库优化而在效率方面相似或相同吗?这是否需要我为user_id和我想计算的任何其他字段创建索引?对于捐赠总额的总和,同样的答案是否成立? 最佳答案