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
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.
Hangisi daha hızlı: while(1) veya(2)?...
Hangisi daha hızlı, (bayrak==0) veya (...
Select count(*) birden fazla tablodan...
Daha hızlı/iyi ki? SEÇİN * SELECT sütu...
Hangisi daha doğru: <h1><a>...