Kom ihåg mig?

problem med Mysql Slow query

 
Ämnesverktyg Visningsalternativ
Oläst 2010-04-19, 22:06 #16
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av Jonas Visa inlägg
SQL " ORDER BY " åsidosätter användning av INDEX.

Därför kommer frågan att klassas som SLOW QUERY när du använder det.

Fabians " SELECT count(<fältnamn>) ..." är ett bättre alternativ eftersom den kommer att använda INDEX.
Nej, det beror på WHERE-satsen, joins, sorteringsordningen (ASC/DESC) osv. Endast ett index används, men kan användas för både sortering och villkor. Se http://dev.mysql.com/doc/refman/5.0/...imization.html för detaljer för första biten.

En liten detalj är också att COUNT(fältnamn) räknar icke-null värden på fältet. COUNT(*) däremot räknar antalet rader.

Dock bör man om man använder innodb använda räknare så långt som möjligt - med ett gäng miljoner rader kan en COUNT(*) lätt ta flera minuter (och i bästa fall hamna i query cache en liten liten stund innan en ny insert görs). Eftersom frågan verkar kunna ställas utan WHERE-sats bör man ha en räknare för antalet rader. Sen åsidosätter man den med en COUNT(*) för ovanliga queries (ofta allt utom just den utan villkor).
Clarence är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 10:18.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017