sql >> Databáze >  >> RDS >> Mysql

Konfigurace indexu mysql

Aktualizace:

Podrobnější analýzu problému najdete v tomto článku na mém blogu:

Když vydáte něco jako LIMIT 150000, 10 , to znamená, že MySQL by měl překonat těchto 150,000 záznamy a najděte dalších 10 .

Procházení indexu je v MySQL pomalé .

Také MySQL není schopen provádět pozdní vyhledávání řádků.

Teoreticky, pokud provedete ORDER BY id LIMIT 100000, 10 , stačí pomocí indexu najít hodnoty od 100000 na 100010 , pak vyhledejte pouze 10 řádky, které splňují tento index a vracejí je.

Všechny hlavní systémy kromě MySQL jsou si toho vědomi a vyhledávají řádky pouze v případě, že mají být hodnoty skutečně vráceny.

MySQL , však vyhledá každý řádek.

Zkuste svůj dotaz přepsat takto:

SELECT  news.*
FROM    (
        SELECT  id
        FROM    news
        WHERE   cat_id='4'
        ORDER BY
                id DESC
        LIMIT 150000, 10
        ) o
JOIN    news
ON      news.id = o.id



  1. Funkce MySQL ATAN() – vrátí arc tangens hodnoty (nebo hodnot)

  2. Převeďte OracleParameter.Value na Int32

  3. Obejít limit 61 JOIN tabulky v MySQL vnořením poddotazů do sebe

  4. Jak se mohu připojit k serveru Oracle Database 11g prostřednictvím řetězce tunelů ssh (dvojitý tunel, server ve firemní síti)?