草庐IT

query-optimization

全部标签

php - Doctrine2 Symfony2 innerJoin QueryException 预期 Doctrine\ORM\Query\Lexer::T_WITH,得到 'ON'

作为我网站的一部分,我正在尝试使用Symfony2和Doctrine2创建标记(folksonomy)系统。我正在按照下面文档中的表格和查询示例来创建我的Doctrine实体:http://dablog.ulcc.ac.uk/wp-content/uploads/2007/12/tagging_folksonomy.pdf当我尝试将MySQL查询(在文档中给出)转换为DoctrineQueryBuilder查询时,我在innerJoins中遇到错误。示例如下:来自文档的MySQL查询:SELECTtag_text,COUNT(*)asnum_tagsFROMTag2Postt2pINN

mysql - 反向查询 like - laravel eloquent or raw MySQL query

我有一张包含用户提交的链接的表格。一些链接不包含`http://`我想使用以下查询列出这些记录:$object=Related::whereHas(function($q){$q->where('URL','like','http%');})->get();如何逆向查询得到它们?谢谢 最佳答案 在这种情况下,您可能可以使用notlike运算符:$object=Related::whereHas(function($q){$q->where('URL','notlike','http%');)->get();

sql - MySQL MyISAM 表性能......痛苦地,痛苦地慢

我有一个表结构,可以概括如下:pagegroup*pagegroupid*name有3600行page*pageid*pagegroupid*data引用页面组;有10000行;每个页组可以有1-700行;数据列是mediumtext类型,每行包含100k-200kbytes数据userdata*userdataid*pageid*column1*column2*column9引用页面;大约有300,000行;每页可以有大约1-50行上面的结构非常简单,问题是从用户数据到页面组的连接非常非常慢,即使我已经索引了所有应该索引的列。为此类连接(userdatainner_joinpagei

PHP + PDO/MySQL : how to automatically query to find out VARCHAR field lengths?

有没有办法用PHP+PDO查询MySQL数据库,找出某些VARCHAR字段的列宽?如果可能的话,我不想将它们硬编码到我的PHP文件中。(目的:确定要插入到这些列中或与列中的现有数据进行比较的字符串的最大长度。) 最佳答案 只需查询information_schema.columns表并过滤出您需要的行。您要查找的值存储在“CHARACTER_MAXIMUM_LENGTH”下。 关于PHP+PDO/MySQL:howtoautomaticallyquerytofindoutVARCHARf

ES delete_by_query条件删除的几种方式

 es查询删除的几种方式1.根据id删除#根据id删除POST/indexname/_delete_by_query{ "query":{   "match":{   "id":"100000"      } }}2.根据多个id删除#根据多个id删除POST/indexname/_delete_by_query{"query":{"bool":{"filter":[{"terms":{"id":["100000","200000"]}}]}}}3.根据多个id范围删除#根据多个id范围删除POST/indexname/_delete_by_query{"query":{"range":{"i

mysql - 将 mySql2 迁移到 postgreSQL : query cache type error when mysql2psql

所以我正在将我的开发环境和生产环境迁移到postgresql,以便我可以部署到Heroku。安装mysql2psqlgem后,初始化(postgresql)database.yml文件——我被困在运行mysql2psql的地方。运行后得到以下信息:/Library/Ruby/Gems/1.8/gems/mysql2psql-0.1.0/bin/../lib/mysql2psql/mysql_reader.rb:153:in`query':Querycacheisdisabled;restarttheserverwithquery_cache_type=1toenableit所以问题是如

php - 警告 : mysqli_query() expects parameter 1 to be mysqli, 中给出的字符串

我收到了警告:Warning:mysqli_query()expectsparameter1tobemysqli,stringgivenin(...)online6我的代码在这里: 最佳答案 这与您错误地将参数传递给mysqli_query()的错误状态完全一样。假设$conn是由newmysqli()在某个时刻生成的mysqli连接,它应该是:$result=mysqli_query($conn,$sql)ortrigger_error(mysqli_error($conn)));您调用它的方式是传递一个字符串$sql作为第一个参

php - 计算从 PHP `mysql_query` 函数返回的行数的可靠方法是什么?

我知道mysql_num_rows(resource$result)但我在某处读到它不是100%准确。我已经看到其他替代方案实际上获取每一行并运行一个计数器,但这听起来效率很低。我有兴趣了解其他人如何获得准确有效的计数。 最佳答案 mysql_num_rows()是准确的,只要您不使用mysql_unbuffered_query()。如果您使用的是mysql_query(),则mysql_num_rows()是准确的。如果您使用mysql_unbuffered_query(),mysql_num_rows()将返回错误结果,直到检索

sql - 嵌套 SQL 查询耗时过长

我正在寻找一种方法来优化我拥有的一个SQL查询。我正在尝试获取某种类型的诗歌数量。查询看起来像这样:SELECTCOUNT(*)FROM`poems`WHERE`id`IN(SELECT`poem_id`FROM`poems_genres`WHERE`genre_title`='derision')AND`status`='finished';它花费的时间太长(大约6-10秒),因为它不能使用索引(我想是因为IN()?)。有没有办法以不同的方式重写此查询以更快地获得相同的结果? 最佳答案 MySQLhasaproblem在in中,它

mysql - 我的 Mysql LIKE 语句应该多快?

下面的MYSQL语句耗时0.577251秒:SELECTsynonym_groupFROMsynonymWHEREnameLIKE'%ak%'名称是一个varchar(250)字段。同义词数据库表中当前有356,187条记录。数据:21MB。索引:23MB。总大小:45MB。每行字节数:67。那么0.577251秒是合理的时间吗?如果不是,那是什么,我应该做什么?我已经阅读了几个关于此类问题的主题,我能看到的主要解决方案是使用像sphinx这样的东西。事实上,我表中的几个字段可能是无关的。例如,如果我通过消除不必要的字段将每行的字节数减半,是否会使搜索速度提高一倍?提前致谢。