Maksimum olası sonuç kümesinin boyutunu olsun

3 Cevap php

Benim uygulama için benim SQL sorguları çoğu belirtilen satır sayısını döndürür. Ben de sonuçların mümkün olan maksimum sayıda ben bir limit ayarı değilse iade olacağını kaç satır yani almak istiyorum.

Tüm sonuçları dönen sonuç kümesinin boyutunu almak ve sonra sadece ilk N satırları döndürmek için set dilindiğinde daha (sadece SQL? Kullanarak) bunu yapmak için daha etkili bir yolu var mı.

3 Cevap

You can use SELECT COUNT(*), but this isn't ideal for large data sets.
A more efficient solution is to use SQL_CALC_FOUND_ROWS and FOUND_ROWS(): http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

İlk sorgu:

SELECT SQL_CALC_FOUND_ROWS id, name, etc FROM table LIMIT 10;

İkinci sorgu:

SELECT FOUND_ROWS();

Hala iki sorgu gerekir, ancak kaynakların tasarrufu, bir zamanlar ana sorguyu çalıştırın.

Ben de sonuçların mümkün olan maksimum sayıda ben bir limit ayarı değilse iade olacağını kaç satır yani almak istiyorum.

Kullanın:

SELECT COUNT(*)
  FROM YOUR_TABLE

Şu anda ... YOUR_TABLE mevcut satır sayısını alır.

Tüm sonuçları dönen sonuç kümesinin boyutunu almak ve sonra sadece ilk N satırları döndürmek için set dilindiğinde daha (sadece SQL? Kullanarak) bunu yapmak için daha etkili bir yolu var mı.

Only fetch the rows/information you need.
Getting everything means a lot of data is going over the wire, that likely won't be used at all. In this situation, data is being cached - which means it can get stale because it isn't fresh from the database.

Bu pagination gibi geliyor ...

Belirtilen satır sayısını almak için select count (*) kullanabilirsiniz. Eğer bu sizin için ne arıyorsanız var mı?