SORU
9 EKİM 2008, PERŞEMBE


Hangisi daha hızlıdır? SELECT SQL_CALC_FOUND_ROWS `tablo` veya SELECT COUNT(*)

Satır sayısı SQL bir sorgu, genellikle disk belleği kullanılan döndüreceği sınırlamak, kayıtların toplam sayısını belirlemek için iki yöntem vardır:

Yöntem 1

Orijinal SQL_CALC_FOUND_ROWS seçeneği SELECT dahil SELECT FOUND_ROWS() çalıştırarak toplam satır sayısını almak:

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();  

Yöntem 2

Sorgu normal olarak çalışacak ve SELECT COUNT(*) çalıştırarak toplam satır sayısını almak

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;  

Hangi yöntem en iyi / en hızlı?

CEVAP
9 EKİM 2008, PERŞEMBE


Duruma göre değişir. Bu konuda MySQL Performance Blog yazısı bakın: http://www.mysqlperformanceblog.com/2007/08/28/to-sql_calc_found_rows-or-not-to-sql_calc_found_rows/

Hızlı bir özet: Peter, dizinler ve diğer faktörlere bağlı olduğunu söylüyor. Yazılan yorumların çoğu SQL_CALC_FOUND_ROWS hemen hemen her zaman yavaş bazen 10 kat daha yavaş - iki sorgu çalışan daha olduğunu söylemek gibi görünüyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BSA

    BSA

    9 NİSAN 2012
  • calicoJake

    calicoJake

    29 EKİM 2007
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012