L

MySQL RAND()

Elég sokszor van, hogy egy webshopnál, vagy weblapnál random sorokat kell lekérdezni adatbázisból. Addig nincs gond, míg pár száz vagy néhány ezer sorból kell válogatni. De mi van, ha több százezer sorból válogatunk? Ilyenkor már elég komolyan be tud lassulni a MySQL.

A legkönnyebb módszer random sorok lekérdezésére MySQL-ben az ORDER BY RAND().

SELECT col1 FROM tbl ORDER BY RAND() LIMIT 100;

Kis tábláknál nagyon jól működik, de nagyobb tábláknál már jelentős teljesítmény gondok lépetnek fel. Ez annak köszönhető, hogy a MySQL először minden sorhoz egy random számot generál, majd ezeket sorba rendezi.

Tehát, ha csak 10 random sort akarsz olvasni egy adatbázisból, melyben 100e sor van, a MySQL-nek a 100e sort először rendeznie kell, majd kiválaszt belőle 10-et.

Találtam egy megoldást, ami szerint a RAND a lekérdezés WHERE részében helyezkedik el és nem az ORDER BY-ban. Először is kell egy tört szám, ami össz sor számából és a limitből jön ki. Aztán pedig ezt használjuk a lekérdezés WHERE részében.

E-mail cím ellenőrzés PHP-val

Sokan szembesülünk a problémával, hogy a felhasználók helytelenül írják be az e-mail címüket. Sajnos a mai rohanó világban előfordul, hogy elütünk egy-egy karaktert. Az email címnél ez igen súlyos gond, hisz nem érkezik értesítés, nem kapunk aktiváló linket. Ilyenkor a megrendelő megoldást vár a programozótól. Építsünk be annyi ellenőrzést, amennyit csak tudunk. Már lassan ott jár a dolog, hogy olvassuk is el helyette.

Tehát keressünk megoldást erre a problémára. A legegyszerűbb, amit sokan használnak, hogy egy regex-et húznak a beírt mail címre, és ha jónak tűnik, mehet tovább. De ez szerintem érezzük, hogy kevés lesz. Lássuk mit tehetünk.

ReStart

LeoamrosLeoamros 2013.07.30.

Elég sok idő telt el, mióta utolsó posztomat beküldtem…

Sajnos (vagy nem) rengeteg dolgom van. Kedves ismerősömnek említettem, hogy mennyire gáz, ha hirtelen egy WordPress oldalt raknék fel, mivel a saját adminom nem volt befejezve, és programozóként égőnek érzem, hogy nem saját motor hajtja az oldalam. Egyszerű válasza volt, ha a sajátodra nem jut idő, az mindig jót jelent :)

Leoamros

X

Üdv! Ha még személyesen nem ismerjük egymást, Smajda László vagyok, de szólíts csak egyszerűen Laccának vagy Leoamrosnak. Olyan netbúvároknak osztom az észt, akik szárnyaikat próbálgatják a PHP, MySQL, JavaScript világában, és elakadnak valamelyik folyamat során. Főleg a saját tapasztalatokat írom le, ettől függetlenül kérdezhetsz bátran, lehetőségeimhez mérten válaszolok.

Kategóriák
Címkék
Social Media
Eszközök