[mythtv-users] Bad mysql performance -- huge oldrecorded -- joins without index
Michael T. Dean
mtdean at thirdcontact.com
Thu Jun 9 15:47:49 UTC 2016
On 06/09/2016 10:16 AM, stinga wrote:
> On 08/06/16 14:10, Simon Hobson wrote:
>>> Mysqltuner complains about "Joins performed without indexes", but I do
>>> not know enough mysql to start looking into that. Any hints ?
>> Well that's a code thing - so without altering the code there's
>> nothing you can do to optimise that aspect.
>> But there is great scope for just tweaking the memory footprint for
>> MySQL. Up to some point, basically the more RAM you allow it to use,
>> the better it will perform - the defaults are "fairly conservative".
>>
>> Overall your values look reasonable - I assume you've already been
>> tweaking them. But this one does stand out : "Query cache is
>> disabled" - I assume that's not normal.
> You can add an index if you want,
though messing with the database schema may prevent future database
upgrades from occurring properly, so is strongly discouraged--if you
want to change the schema, submit a ticket/patch, or at least start a
discussion to get it into "upstream" code so you're not running a broken
fork
> no code changes required.
>
but in this case, code changes are actually required to add the index as
I'm pretty sure the "join performed without indexes" is referencing a
join on a temporary table that's created by the code each time it's
needed and then dropped after it's used. I'm pretty sure that creating
the index on the temp table that's created/used/dropped each time the
scheduler runs (so creating the index for each scheduler run) would take
at least as much time as just doing the join with the unindexed temp table.
I think the general "best practice" (meaning guideline before
profiling--which should always be performed before any efforts at
optimization) says not to create an index on a temp table if you won't
use the temp table and index at least twice. While I haven't looked at
the code in quite a while to be sure, I don't think we'd use the
table/index twice.
Mike
More information about the mythtv-users
mailing list