草庐IT

query-optimization

全部标签

MYSQL: Query 2 tables with union 很慢,如何改善?

我想同时查询具有(几乎)相同行的2个表。结果,我想获取最近的5个条目(按日期排序,总共),无论它们来自哪个表到目前为止,我试过这个:SELECTdate,name,textFROM`table_A`UNIONSELECTdate,name,textFROM`table_B`ORDERBYdatedescLIMIT5不幸的是,这个查询大约需要20秒(两个表都有大约300.000行)。当我这样做的时候:SELECTdate,name,textFROM`table_A`ORDERBYdatedescLIMIT5或SELECTdate,name,textFROM`table_B`ORDERBY

mysql - 没有全表扫描的优先级/级联日期时间

SELECTIF(priority_date,priority_date,created_at)ascreated_atFROMtableWHEREIF(priority_date,priority_date,created_at)BETWEEN'2017-10-1000:00:00'AND'2017-10-1023:59:59';在性能方面执行此查询的最佳方式是什么?我有一个相当大的表,其中有两个日期时间。created_at和priority_date。priority_date并不总是存在,但如果存在,它应该是查询的内容,否则它会回退到created_at。created_at始

MySQL Select Query 生成动态列Result

我需要编写一个动态返回列的查询。例如,我有一个包含列的表tblTest:Id,Name,Type,Amount1,Receipt,Cash1002,Receipt,Card2003,Receipt,Cheque2504,Receipt,Card1505,Receipt,Cash1006,Payment,Cash3007,Payment,Cheque400SQL查询:SELECTName,SUM(CASEWHENType='Cash'THENAmountELSE0END)Cash,SUM(CASEWHENType='Card'THENAmountELSE0END)Card,SUM(CAS

mysql - 关系数据库 (RDBMS) 非规范化数据

我认为这个问题并没有专门针对MySQL(我正在使用的数据库),而是一个关于最佳实践的问题。到目前为止,我的问题可以通过创建表并查询它们来解决(有时在这里和那里加入)。但是我正在做的一些事情感觉不对,每当我需要一个非规范化数据以及我的“常见”查询时,它就会触发我。示例用例为了更好地表达自己,让我们创建一个肤浅的场景:一个user可以买一个product,生成一个purchase(让我们忽略purchase只能有一个product的事实);并且我们需要查询products以及它已经出现purchased的总次数;为了解决我们的用例,我们可以定义一个简单的结构,由:product表:prod

php - SELECT/UPDATE 和 SELECT/INSERT 杀死 MySQL 服务器

我运行的服务器因来self们的一款iPhone游戏的用于存储分数的请求数量而被杀死。我的意思是服务器变得无响应。我真的只知道足够的MySQL/PHP来应付,所以我正在努力解决这个问题。我确信这是一个可以优化的问题,因为我们有专用服务器。我们每分钟只处理300个请求。基本上,我们检查某人从他们的iPhone游戏中发布的分数(使用SELECT)以查看他们是否有现有分数。如果他们这样做了,并且他们的新分数更好,我们会进行更新,否则我们会进行插入。语句如下所示:$sql="SELECTid,score,levelFROM$tableWHEREboard='$board'ANDname='$na

MySQL 优化测试 "WHERE (X=0 or X=1)"与 "WHERE X<2"

删除OR语句是否有性能优势?哪个编译速度更快SELECTidFROMmytablewhere(x=0orx=1)或SELECTidFROMmytablewherex我自己跑了测试,第二个要快一点。但是我不确定这是否是由于运行第一个命令时发生的缓存所致。有没有一种好的方法可以评估两个相互竞争的查询,而不会缓存和影响其他查询?EXPLAIN产生相同的输出:+----+-------------+---------+------+---------------+------+---------+------+---------+-------------+|id|select_type|ta

php - 新手问题: PDO and MYSQL INSERT Query problem

我正在尝试更加安全并开始使用PDO和准备好的语句。这是向我推荐的,我已经在这两个网站上阅读过:http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/和http://webdevrefinery.com/forums/topic/1272-your-mysql-code-sucks我碰壁了,我不明白为什么以下内容不起作用。我正在尝试插入一行(以记录404错误)。我已经阅读了有关命名和未命名占位符的信息,我认为命名占位符方法更易于维护。我也第一次尝试使用“try”

mysql - 如何优化此 VIEW 语句?

我有一个很慢的VIEW。我不喜欢VIEW语句,因为有很多JOINS和UNION。这是View语句。CreateVIEWNewViewASSELECTt2.*FROMTable1t1JOINTable2t2ONt1.Column1=t2.Column1ANDt1.Column2=t2.Column2WHEREt1.Column3!='String'UNIONSELECTt1.*,'AddthisstringtotheLastColumn'FROMTable1t1LEFTJOINTable2t2ONt1.Column1=t2.Column1ANDt1.Column2=t2.Column2W

mysql - SOLR 数据导入错误 "Unable to Execute Query"

我有一个在AmazonEC2实例上运行的网站,我正在尝试让Solr与我正在使用的数据库进行交互和使用。我能够使用管理界面并已将示例xml文件编入索引,但每当我尝试导入我的数据库表之一时,我都会收到错误SEVERE:Exceptionwhileprocessing:gamelydbdocument:SolrInputDocument[{}]:org.apache.solr.handler.dataimport.DataImportHandlerException:Unabletoexecutequery:SELECT*FROMleagueProcessingDocument#1这是我的d

mysql select查询优化

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我有两个表testa和testb。CREATETABLE`testa`(`id`INT(10)NOTNULLAUTO_INCREMENT,`name`VARCHAR(50)DEFAULTNULL,PRIMARYKEY(`id`));CREATETABLE`testb`(`id`INT(10)NOTNULLAUTO_INCREMENT,`name`VARCHAR(50)DEFAULTNULL,`