草庐IT

order_index

全部标签

mysql表: index vs primary

我是新手,有点关心mysql表的效率问题。在mysql表中制作一个字段的优缺点是什么索引主要在决定mysql表中字段的属性时遵循的做法是什么?请分享您的见解,谢谢。 最佳答案 一张表中只能有一个主键。它应该是唯一标识表中每条记录的列。主键不是必需的;例如,您可能有一个表来实现多对多关系,并且这些记录不需要唯一ID。只要您必须查询表并指定一些条件以根据列的值(例如WHERE子句)过滤记录,就应该使用索引。有很多关于索引的知识,例如:何时在一列上创建索引与在同一索引中的多个列上创建索引。阅读thedocumentationontheMy

php - MySQL ORDER BY 结果不是按字母顺序排列的

我一直在努力寻找解决这个问题的方法,但一直没有成功。我知道这里有几个类似的问题,但它们都是更复杂的场景,并不真正适用。好的,问题:我有一个非常简单的表格,其中包含交易收款人及其相关类别的列表。结构为id-int,name-varchar,andcat-varchar我正在尝试执行一个简单的查询以按字母顺序显示收款人姓名,并使用while循环将其添加到选择框中。无论我是否使用ASC或DESC,它们都没有明显的顺序显示条目的开头或结尾没有空格。这是查询-SELECTnameFROMpayeesORDERBYname尝试在phpMyAdmin中按字母顺序对它们进行排序时,我得到了相同的结果。

mysql order by 不是唯一的等级?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:HowdoIHandleTiesWhenRankingResultsinMySQL?我想按Activepoints对表Status进行排序,并将排名插入列rank中。它来了:RANKUSERNAMEACTIVEPOINTS1monkey100922fresnoJump543otherUser954但它应该显示的不是唯一的排名RANKUSERNAMEACTIVEPOINTS1monkey100922fresnoJump542otherUser954

mysql - 优化 MySQL - WHERE 和 ORDER BY 使用不同的列

我有一个115MByte、1,600,000行的表,用于存储房价和坐标。“SELECT”查询花费的时间太长。我想知道是否有人可以建议加快速度的方法。我的表的稍微简化的版本....CREATETABLE`prices1`(`price`INT(10)NOTNULL,`address`VARCHAR(127)NOTNULL,`lat`FLOAT(6,4)NOTNULLCOMMENT'GPSlatitude',`lng`FLOAT(6,4)NOTNULLCOMMENT'GPSlongitude',INDEX`lat`(`lat`),INDEX`price`(`price`))ENGINE=M

mysql - 具有多个 where 和 order by 子句的慢查询

我正在尝试寻找一种方法来加速缓慢的(文件排序)MySQL查询。表格:categories(id,lft,rgt)questions(id,category_id,created_at,votes_up,votes_down)示例查询:SELECT*FROMquestionsqINNERJOINcategoriescON(c.id=q.category_id)WHEREc.lft>1ANDc.rgt如果我删除ORDERBY子句,它会很快。我知道MySQL不喜欢在同一个子句中同时使用DESC和ASC命令,所以我尝试添加一个复合(created_at,votes_up)索引到question

mysql - ORDER BY 中使用的计算值是否在排序期间重新计算过?

假设我们有一个查询,它按未选择的计算值排序,例如:select*fromtableorderbycol1*col2-col3在大多数语言的典型排序操作中,在排序过程中多次使用排序值是很常见的,因为给定的记录可能与许多其他记录进行比较。有可能mysql有这样的实现。如果mysql每行一次计算这样的值并在排序完成时临时存储它们,或者每当进行比较时重新计算这些值,谁能说明确地(这可能是1-n次)?我已经标记了这个mysql,但我欢迎关于/包括其他流行数据库的评论/回答 最佳答案 答案是...mysql每行执行计算一次。由于缺乏可信的答案,

mysql - 在两个不同的组中使用 ORDER BY 的 SQL 查询

假设我有一张包含NBA球员的简单表格:id,player,mp,ppg(mp-参加的比赛,ppg-每场比赛的得分)。我需要一个查询来获取所有人员,但将结果分成两部分:按PPGdesc要求参加了30场以上比赛的球员,按PPGdesc要求打了不到30场比赛的球员理想的输出是(示例):n.playermpppg1.player18232.52.player25632.13.player38229.74.player48027.6...70.player70751.5(lowestinthe30+gamesgroup)71.player712935.7(highestinthelessthan

mysql - 使用 GROUP BY 时如何强制执行 ORDER BY?

我有这个SQL:SELECTitemId,parentId,valueFROMitemORDERBYvalueDESC正确返回:+--------+------------------+|itemId|parentId|value|+--------+------------------+|1|5|500||4|1|500||2|5|10||5|1|10||3|5|0||6|1|0|+--------+----------+-------+我尝试添加“GROUPBYparentId”,但这似乎随机选择了两个项目,忽略了ORDERBY子句:+--------+--------------

php - 具有多个 INNER JOIN 的 MySQL ORDER BY

我似乎无法弄清楚如何在此MySQL选择中进行排序。我希望你能帮助我。标签:类别catId,catParentId,catDisplay101201301411511类别_翻译transId,catId,catName,catDesc,langId11Title1Desc1122Title2Desc2133Title3Desc3144Title4Desc4155Title5Desc51语言langId,langName,langCode1Danishda2Englishen我的查询:SELECT`categories`.`catId`,`categories`.`catParentId`

MySQL Innodb : Large Composite PK no other indexes

我正在创建一个包含四列的Innodb表。表格column_a(tiny_int)column_b(medium_int)column_c(timestamp)column_d(medium_int)PrimaryKey->column_a,column_b,column_c从逻辑的角度来看,列A、B、C必须一起组成一个PK。但是,为了提高性能并能够直接从索引中读取(使用索引),我正在考虑一个由所有4个组成的PK列(A、B、C、D)。问题将附加列附加到Innodb表的主键上会有什么性能?注意事项代理主键绝对不可能此表上将不存在其他索引表是读/写密集型的(两者差不多)谢谢!