小编Rie*_*sio的帖子

优化在同一个表上使用多个左连接的查询

我遇到了一个"太长"的查询.该查询在10个左右的表之间有50多个左连接.为了简要概述数据库模型,连接的表是存储特定数据类型数据的表(例如:date_fields,integer_fields,text_fields等),每个表都有一个值列,一个"datafield"id,和票证ID.查询是基于"票证"及其"数据字段"之间的关联表以编程方式构建的.

join语句如下所示:

...FROM tickets t
LEFT JOIN ticket_text_fields t001 ON(t.id=t001.ticket_id AND t001.textfield_id=7)
...
LEFT JOIN ticket_date_fields t056 ON(t.id=t056.ticket_id AND t056.datafield_id=434)
Run Code Online (Sandbox Code Playgroud)

在查询上使用说明时显示以下内容:

1   SIMPLE   t       ref   idx_dataset_id                   idx_dataset_id  5   const   2871   Using where; Using temporary; Using filesort
1   SIMPLE   t001   ref   idx_ticket_id,idx_datafield_id   idx_ticket_id   5   t.id   5   
... 
1   SIMPLE   t056   ref   idx_ticket_id,idx_datafield_id   idx_ticket_id   5   t.id   8
Run Code Online (Sandbox Code Playgroud)

我可以采取什么方向来调整此查询?所有索引似乎都已到位.也许应该减少t表(票)行号(2871).有多少左连接太多了?数据域表是否应仅连接一次,然后查询每个所需的数据?

sql optimization left-join sql-execution-plan

4
推荐指数
1
解决办法
4531
查看次数

多列索引列顺序

我被告知并在任何地方阅读它(但没有人敢解释为什么)当在多列上编写索引时,出于性能原因,我应该将最具选择性的列放在第一位.这是为什么?这是一个神话吗?

oracle relational-database compound-index indices

4
推荐指数
2
解决办法
1865
查看次数

EXPLAIN和COUNT返回两个不同的值

我在做:

explain select * from calibration;
Run Code Online (Sandbox Code Playgroud)

它说52133456345632行

当我做:

select count(*) from calibration;
Run Code Online (Sandbox Code Playgroud)

我正在收到52134563456961

谁能解释一下这里发生的事情?

mysql sql count sql-execution-plan

3
推荐指数
1
解决办法
408
查看次数

phpMyAdmin:MySQL错误1062 - 重复输入

我将用户"root"连接到我的数据库"test",我在本地托管以进行开发.其中我有"ratingcomment"表.出于某种原因,当我点击"ratingcomment"表时,phpMyAdmin向我显示以下错误:

Fehler

    SQL-Befehl: 

    INSERT INTO  `phpmyadmin`.`pma_history` (

    `username` ,
     `db` ,
     `table` ,
     `timevalue` ,
     `sqlquery`
    )
    VALUES (
    'root',  'test',  'ratingcomment', NOW( ) ,  'SELECT * FROM `ratingcomment`'
    )
    MySQL meldet: 

    #1062 - Duplicate entry '838' for key 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)

我使用谷歌找出以下内容

"This indicates that you have a UNIQUE or PRIMARY index on a table, and there is a duplicate value someone on one of the values in one of these indexes."
Run Code Online (Sandbox Code Playgroud)

但我还是不太明白这个错误!我使用主键,它为我的所有表自动递增,所以实际上表不存在问题.我有另一个名为"rating"的表,其中有一个"评论"列.这可能会导致问题吗?

mysql phpmyadmin corruption duplicates mysql-error-1062

3
推荐指数
1
解决办法
8352
查看次数

2
推荐指数
1
解决办法
144
查看次数

sql fulltext返回null

我正在使用joomla CMS写入我的数据库,并编写了一个自定义前端.

我正在尝试获取'fulltext'行的内容.我试过mysql_fetch_assoc['fulltext']mysql_result($sql, 0, 'fulltext').两者都返回全文.这是查询字符串:

SELECT created, modified, title, introtext, 'fulltext', state, urls, created_by
  FROM table_content
 WHERE id='$id'
Run Code Online (Sandbox Code Playgroud)

这可能是我错过的非常明显的事情,因为全文似乎与没有引号的sql冲突.

任何帮助将一如既往地受到赞赏!

php sql joomla keyword

0
推荐指数
1
解决办法
163
查看次数