草庐IT

order_rows

全部标签

php - MySQL 性能 : Many tables or many rows?

我想在我的PHP/MySQL应用程序中记录对页面的访问,以实现类似于SO上的View计数。我的计划是根据每个页面上的唯一IP地址来计算请求数。大约有5000个具有查看次数的不同页面。(我知道计算IP并不准确,但这对我来说没问题。)我看到两个组织数据库表的选项:任一包含字段“page_id”、“request_ip”的大表。假设每个页面平均有50次按唯一IP浏览,我将得到5000x50=250000行。当View显示在页面上时,该表将对每个页面上的每个请求具有读写访问权限。另一种选择是每页有一个表,其中只有一列“request_ip”。然后我将有5000个表,平均存储50行。表格只有在其

mysql - 在 mysqldump 上强制使用 row_format

我正在将整个服务器转换为使用Barracuda文件格式和动态行格式。这是我所做的:完整的mysqldump配置*innodb_file_per_table=1*和*innodb_file_format=barracuda*重置了所有mysql数据。导入了所有转储的数据库。由于我再次创建了所有数据库并重新创建了表,所以我原以为它们都是梭鱼,但大多数都是羚羊。有没有办法在mysqldump上或导入时指定row_format?注意:在有人问为什么之前,我尝试了不同的文件格式来测试哪种文件格式在我们的服务器上表现最好,我们的服务器目前有680个数据库,总共有326k个表和40Gb。现在主要问题

php - SQL_CALC_FOUND_ROWS 和 SELECT FOUND_ROWS() on UNION query (not UNION ALL) with LIMIT

我正在尝试计算在没有设置全局LIMIT的情况下将返回的总行数。这是我的查询:SELECTSQL_CALC_FOUND_ROWS*FROMtable1WHERE[...]UNIONSELECT*FROMtable2WHERE[...]UNIONSELECT*FROMtable3WHERE[...]UNIONSELECT*FROMtable4WHERE[...]LIMIT0,30然后我立即执行SELECTFOUND_ROWS()查询。它总共返回35行,但它应该返回总共400行。知道如何在不使用UNIONALL的情况下计算行数吗? 最佳答案

mysql - 错误 1452 (23000) : Cannot add or update a child row: a foreign key constraint fails for existing tables

将外键分配给现有表列时出现以下错误:ERROR1452(23000):Cannotaddorupdateachildrow:aforeignkeyconstraintfails(c_x_parsing.#sql-787_1,CONSTRAINT#sql-787_1_ibfk_1FOREIGNKEY(nct_id)REFERENCEScdb(nct_id))下面是我的查询:ALTERTABLEc_intADDFOREIGNKEY(n_id)REFERENCEScdb(n_id);虽然我的父表是cdbcdb,子表是c_int。请给我建议解决方案,因为我已经尝试过以下命令:ALTERTABL

php - 1250 - 来自其中一个 SELECT 的表 'sub' 不能在全局 ORDER 子句中使用

我正在尝试制作一个用于学习目的的聊天网站,因此在此过程中,我希望最后30条消息按升序显示w.r.t.时间。比如,最新的消息在底部,最旧的消息在顶部。经过大量的谷歌搜索,但没有找到任何有帮助的解决方案,我不得不问这个问题。这是MySQL语句。它返回我想要的数据,但按降序排列。也就是说,最新的在顶部。即使我将ASC更改为DESC,也没有任何反应。SELECT*FROM(SELECTmsg,senderFROMchatlogsWHEREuser1='userone'ANDuser2='usertwo'ORDERBY'timeofmsg'DESCLIMIT30)subORDERBY'sub.t

php - Laravel 在使用 CASE WHEN 时如何使用 order by?

我可以像这样在Laravel中使用orderBy方法:$posts=Post::orderBy('id','DESC')->get();好的,如果ORDERBY子句中有CASE怎么办?像这样:ORDERBYCASEWHENid.PinRequestCount0THEN5WHENid.HighCallAlertCount0THEN4WHENid.HighAlertCount0THEN3WHENid.MediumCallAlertCount0THEN2WHENid.MediumAlertCount0THEN1ENDdesc,我如何在Laravel中编写这个^?

mysql - SQL ORDER BY 性能

我有一个包含超过100万条记录的表。问题是查询花费的时间太多,比如5分钟。“ORDERBY”是我的问题,但我需要查询顺序中的表达式才能获得最受欢迎的视频。由于表达式的原因,我无法在其上创建索引。我该如何解决这个问题?谢谢。SELECTDISTINCT`v`.`id`,`v`.`url`,`v`.`title`,`v`.`hits`,`v`.`created`,ROUND((r.likes*100)/(r.likes+r.dislikes),0)AS`vote`FROM`videos`AS`v`INNERJOIN`votes`AS`r`ONv.id=r.id_videoORDERBY(v

php - ORDER BY % 这是在原始 while 循环中计算的

我想根据主要结果查询中的数学总和答案对结果进行排序,我的意思是:我当前的代码看起来像这样:$query="SELECT*FROMfooWHEREfoobar='{$fobo}'ORDERBYidDESC";$result=mysql_query($query);while($row=mysql_fetch_array($result)){$percent=round((100*$row['wins']/($row['wins']+$row['loses'])));echo'blahblahblah'.$percent;}如您所见,我目前按id排序:$query="SELECT*FROM

MySQL: order by inside group by

我有一个像这样的mysql表:mysql>select*frompt_onhandwherepn='000A569011';+------------+-----+----+--------+------------+---------+--------------+-----+|pn|pa|mn|ACTIVE|locate|onhand|avg_cost|whs|+------------+-----+----+--------+------------+---------+--------------+-----+|000A569011|P/A|||AA-112|13.0000|0

mysql - SQL Server 中是否有等效的 SQL_CALC_FOUND_ROWS?

我有这个mssql查询:withRESULTas(selectTITLE,URL,ROW_NUMBER()over(orderbyURL)asSeqValuefromWEBSITEselect*fromRESULTwhereSeqValue>=20andSeqValue我想知道如果没有where语句,这个查询会返回多少条记录。我尝试使用selectcount(*)fromRESULT并尝试使用@@ROWCOUNT和许多其他方式,但没有奏效。我需要选择的TITLE和URL,最后我需要选择的总记录。例如在mysql查询中我有使用SQL_CALC_FOUND_ROWS的prepareStat