Tag: 查询优化

MySQL解释计划中“Select tables optimized away”的含义

在MySQL解释计划中Select tables optimized away的含义是什么? explain select count(comment_count) from wp_posts; +—-+————-+—————————+—————————–+ | id | select_type | table,type,possible_keys, | Extra | | | | key,key_len,ref,rows | | +—-+————-+—————————+—————————–+ | 1 | SIMPLE | all NULLs | Select tables optimized away| +—-+————-+—————————+—————————–+ 1 row in set (0.00 sec) 注意: explain plan为易读性编辑的explain plan输出。

seq扫描和postgres中的位图堆扫描有什么区别?

在解释命令的输出中,我find了两个术语'Seq Scan'和'Bitmap heap Scan'。 有人能告诉我这两种扫描有什么区别? (我正在使用PostgreSql)

MySQL解释查询理解

我读过一些博客和一些与优化相关的文章,如何优化查询。 我读我需要使用索引,并确保我所有的主键和外键使用良好的关系数据库架构正确设置。 现在我有一个查询,我需要优化,我得到这个解释: Using where; Using temporary; Using filesort 我正在使用MySQL 5.5 我知道我正在使用WHERE但不是与我的临时表或文件? 这是什么意思?

PostgreSQL – 获取列的最大值的行

我正在处理一个包含time_stamp,usr_id,transaction_id和lives_remaining列的logging的Postgres表(称为“lives”)。 我需要一个查询,将给我每个usr_id最近lives_remaining总 有多个用户(不同的usr_id的) time_stamp不是一个唯一的标识符:有时用户事件(在表中按行排列)将以相同的time_stamp出现。 trans_id只有在非常小的时间范围内才是唯一的:随着时间的推移它会重复 remaining_lives(对于给定的用户)可随时间增加和减less 例: TIME_STAMP | lives_remaining | usr_id | TRANS_ID —————————————– 07:00 | 1 | 1 | 1 09:00 | 4 | 2 | 2 10:00 | 2 | 3 | 3 10:00 | 1 | 2 | 4 11:00 | 4 | 1 | 五 11:00 | 3 | 1 […]

mysql从最后n行中select

我有一个索引(自动增量)和整数值的表。 这张桌子有数百万行。 如何search某个数字是否最有效地出现在表格的最后n行?

为什么MongoDB中的索引方向很重要?

引用文档 : 创build索引时,与键关联的数字指定索引的方向,所以它应该始终为1(升序)或-1(降序)。 方向对单键索引或随机访问检索无关紧要,但对于复合索引进行sorting或范围查询非常重要。 但是,我看不出为什么指数的方向对复合指标有影响。 有人可以提供进一步的解释(或例子)?

Sql:如何正确地检查一条logging是否存在

读一些SQL调优文档我发现这个: Select count(*) : – 统计行数 – 通常被错误地用来validationlogging的存在 Select count(*)真的不好吗? validationlogging存在的正确方法是什么?

MySQL JOIN与LEFT JOIN的区别

我有这个跨数据库查询… SELECT `DM_Server`.`Jobs`.*, `DM_Server`.servers.Description AS server, digital_inventory.params, products.products_id, products.products_pdfupload, customers.customers_firstname, customers.customers_lastname FROM `DM_Server`.`Jobs` INNER JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf") JOIN `cpod_live`.`customers` ON customers.customers_id = products.cID ORDER BY `DM_Server`.`Jobs`.Jobs_StartTime DESC LIMIT 50 它运行良好,直到我让他们LEFT JOIN s。 我认为通过不指定一种types的连接,它被认为是一个LEFT JOIN 。 不是这样吗?

什么是在半径内查找大表的最快方法MySQL(纬度经度)

目前我有几个100k +行的表。 我正在试图查找如下的数据。 SELECT *, SQRT(POW(69.1 * (latitude – '49.1044302'), 2) + POW(69.1 * ('-122.801094' – longitude) * COS(latitude / 57.3), 2)) AS distance FROM stops HAVING distance < 5 ORDER BY distance limit 100 但是目前这种方法在高负载下变慢。 有些查询需要20多秒才能完成。 如果有人知道任何更好的方法来优化这将是伟大的。

6000万条目,从某个月份中select条目。 如何优化数据库?

我有一个拥有6000万条logging的数据库。 每个条目包含: ID DataSourceID的 一些数据 约会时间 我需要从某个月份select条目。 每个月包含大约200万条目。 select * from Entries where time between "2010-04-01 00:00:00" and "2010-05-01 00:00:00" (查询大约需要1.5分钟) 我也想从给定的DataSourceID中select某个月份的数据。 (大约需要20秒) 大约有50-100个不同的DataSourceIDs。 有没有办法让这个更快? 我有什么select? 如何优化这个数据库/查询? 编辑:有约。 每秒插入60-100!