SELECT FOUND_ROWS();

2009.03.02. 10:30 stack

Valahogy mindig is a JavaScript, PHP, MySql hármasban a leggyengébb láncszem szerepét a MySql töltötte be. A komolyabb JavaScript keretrendszerek megjelenése előtt a hangsúlyt a PHP kapta, majd idővel átvette (nálam) a JavaScript, ám az sosem volt kérdés, hogy utolsó helyen a MySql áll.

Pedig vannak benne olyan lehetőségek, amelyeket érdemes kihasználni, még akkor is, ha összességében ma még nagyon messze van attól, hogy az üzleti logika egy az egyben ott legyen…

Amikor egy grid-hez elemeket gyártunk, legyártjuk az adott szakaszhoz tartozó listát, és az össz. darabszámot.

Ezt megoldhatjuk így:

SELECT ... FROM ... LIMIT ...;
SELECT COUNT(*) FROM ...;

Vagy használhatjuk a SQL_CALC_FOUND kitételt:

SELECT SQL_CALC_FOUND_ROWS ... FROM ... LIMIT ...;
SELECT FOUND_ROWS();

Gyorsabb és átláthatóbb.

3 komment

Címkék: mysql total count

A bejegyzés trackback címe:

https://extjs.blog.hu/api/trackback/id/tr94974923

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

carstep 2009.05.10. 18:49:17

szia,

mivel nem tudsz 1x-re ket utasitast futtatni mysql_query-vel, ezert ha surun latogatott a szajt, akkor nehezen fogsz megbizhato valaszt kapni a select found_rows()-ra. Lehet tevedek, de meg nem volt lehetosegem kiprobalni. Szerintem probalj kicsit teljesebb peldakat irni!

-cs-
Sanyi

UI.: Persze PDO-ban megoldhato a dolog, illetve tarolt eljaras segitsegevel

stack 2009.05.10. 23:05:40

Amikor az ember a SELECT LAST_INSERT_ID() -t használja, akkor sem a teljes adatbázis utolsó insert-jéről beszélünk, hanem az adott szál utolsó insert-jéről... pontosan ugyanaz a helyzet itt is...
Ha nagyon ki szeretnéd ezt próbálni, akkor párhuzamosan két böngészőablakba futassál ilyen utasításokat folyamatosan. Nem lesz ezzel probléma.
Ehhez nem kell sem kiterjesztés, sem tárolt eljárás.

carstep 2009.05.11. 13:40:41

@stack: szia, igen igy mar ertheto ha szalankent vezeti, hasonloan a last_insert_id()-hez. Viszont kicsit kutakodtam a tema irant es, ha valakinek van meg kerdese szerintem ajanlatos ezt a linket megneznie:

www.mysqlperformanceblog.com/2007/08/28/to-sql_calc_found_rows-or-not-to-sql_calc_found_rows/

a kommentekben van egy ket tanulsagos eset is!

-cs-
Sanyi

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?