草庐IT

query-optimization

全部标签

sql - 与字符串相比,Mysql 在where 子句中使用数字是否更快?

假设您有4种类型的评估,Test、Quiz、MiniQuiz和FinalExam然后我们像这样将记录存储在数据库中studentid-----assesType1test2quiz3quiz4quiz5miniquiz6miniquiz7final8final为每种类型分配数字是否更快更好的方法让我们说:测试=1测验=2小测验=3最后=4并使用它来保存记录。studentid-----assesType1122324253637485我真正想问的是,这样做值得吗?优势等?因为在这样做时用服务器端选择的语言编写代码变得有点困难。谢谢=) 最佳答案

MySQL 性能 : raw query vs. 存储过程

据我所知,MSSQL中的原始查询和存储过程之间存在显着的性能差异(例如,两者的查询计划以相同的方式缓存)。但是MySQL呢? 最佳答案 首先,SP的值(value)不在于性能,已经有一段时间了。存储过程的值(value)更多地与安全性和数据生命周期有关。看看几年前链接到这里的文章-IsthisavalidbenefitofusingembeddedSQLoverstoredprocedures? 关于MySQL性能:rawqueryvs.存储过程,我们在StackOverflow上找到一

mysql - 优化从同一个表中提取的多列的查询

这是anotherquestionhereonSO的后续.我有这两个数据库表(省略了更多表):acquisitions(acq)id{PK}id_cu{FK}datetime{UniqueConstraint:id_cu-datetime}dataid{PK}id_acq{FKacquisitions}id_measid_elabvalue一切可能id和datetime是全部索引。当然,我会不是更改数据库结构我需要以这种方式提取数据:按日期时间分组的行每列对应data.value对于选定的acq.id_cu-data.id_meas-data.id_elab组合。(见帖子底部的注释)如

php - mysql_query 到 PDO 和准备好的语句

我的CMS中有这个功能,它将字段和值的可变列表插入到两个不同的表中;一个是静态索引表,一个是动态的。这是函数:functioninsertFields($fields){$stdfields=array();$extfields=array();/*Separatethefieldsbasedonifthefieldsisstandardorextra.$this->fieldsisacsvlistofthedefinedextrafields*/foreach($fieldsas$field=>$value){$fields[mysql_real_escape_string($fie

php - MySQL Query 帮助统计命中率?

TABLE:pagespageId|name1|Home2|AboutUs3|ContactUs然后我存储了统计数据:TABLE:hitshid|created|assignId01|1000000001|102|1000000002|103|1000000003|3所以基本上,“主页”被打开了两次,“关于我们”从不打开,“联系我们”一次。另请注意,最近访问了“联系我们”。我需要一个返回这个的查询:pageId|name|lastAccessDate1|Home|1000000002-->NB:Noticethatittakesthehigherone2|AboutUs|null3|C

mysql - 使用日期字段作为表之间的引用是否明智?

我有两个表events和bookings,它们由event_id链接。示例:CREATETABLE`bookings`(`booking_id`int(10)UNSIGNEDNOTNULLAUTO_INCREMENT,`event_id`int(10)UNSIGNEDNULLDEFAULTNULL,`fullname`varchar(80)NOTNULL,`phone`varchar(20)NULLDEFAULTNULL,`note`textNULL,`date_created`datetimeNOTNULL,`date_updated`timestampNOTNULLDEFAULT'

php - mysql_query 只为 int/fload 数据库类型返回字符串类型

我正在尝试处理MySQL选择结果。我的问题是,下面的示例代码仅返回一个包含所有值的数组string-type即使对于包含整数和float的列也是如此。$sth=mysql_query($selectstr);$rows=array();while($r=mysql_fetch_row($sth)){foreach($ras$value)echogettype($value),"\n";}如果我将$r中的数组传递给json_encode(..),我会在输出中得到JavaScript字符串值(用引号括起来),而不是未加引号的数字值(我需要什么)。如何查询MySQL数据库并获取包含具有正确类

php - 我应该使用什么 : inner join or 3 different queries?

我有3张table成员成员(member)视频成员(member)照片对于成员(member)个人资料页面,我应该使用一个带有内部连接的查询吗SELECTmember.*,member_photo.*,member_video.*FROM(memberINNERJOINmember_photoONmember.member_id=member_photo.member_id)INNERJOINmember_videoONmember.member_id=member_video.member_id然后将视频推送到视频数组,将照片推送到照片数组,但在此处查询为每个视频找到相同的照片,因此

mysql - 优化无法解释的缓慢 MySQL 查询

我因为一个愚蠢的查询而失去了头发。首先,我会解释它的目标是什么。我每小时获取一组值并存储在数据库中。这些值可以随时间增加或保持不变。此查询提取最近60天的每日最新值(我有双胞胎查询按周和月提取最新值,它们是相似的)。查询是不言自明的:SELECTl.valueASvalueFROMatableASlWHEREl.time=(SELECTMAX(m.time)FROMatableASmWHEREDATE(l.time)=DATE(m.time)LIMIT1)ORDERBYl.timeDESCLIMIT60看起来没什么特别的。但它非常慢(>30秒),考虑到time是一个索引并且表包含少于5

mysql - 优化此 mysql 查询以尽可能使用我的索引?

我有一个mysql查询,我认为它应该使用我的索引,但似乎仍然需要扫描很多行(我认为)。这是我的查询:SELECTDISTINCTDAY(broadcast_at)AS'days'fromv3211062009wheremonth(broadcast_at)=5andyear(broadcast_at)=2012anddeviceid=337orderbydays;在我的table上,我在broadcast_at,deviceid上设置了一个索引。但是,此查询的解释结果如下所示:idselect_typetabletypepossible_keyskeykey_lenrefrowsExt