Archívum
szeptember 21, 2013
Mysql lekérdezés optimalizálása
Sziasztok!
Egy viszonylag egyszerű ügyben kérném a véleményeteket/segítségeteket:
Adott egy adatbázis, egyszerűség kedvéért 2 tábla:
A: id, b_id
B: id, name
id természetesen primary key, b_id pedig a b.id-vel van kapcsolatban.
Adott a query:Tehát a B elemeiből hány szerepel A-ban és eszerint egy ranglista. Ez szépen működött is, amíg meg nem hízott az adatbázis. Jelenleg A-ban 220.000, B-ben 8000 rekord van. A lekérdezés átlag 4-7 mp alatt fut le.
Hogyan lehetne gyorsítani?
- myisam/innodb? Jelenleg myisam, próbáltam innodb-vel is, még lassabbnak tűnt.
- Van-e jelentősége, hogy B_id foreign key, vagy csak simán key?
- vagy pedig jöhet a denormalizálás, és vegyek fel B-re egy számláló mezőt, amit triggerrel/php-val updatelek?
A táblaszerkezetek:Egyébként a helyzet még bonyolódik egy C táblával is, ahol B-ben van egy C_id oszlop hasonló kapcsolattal, és ezekből kell különböző statisztikákat lekérdezni, de már a 2táblás verziónál gondok vannak.
Köszönöm a segítséget!
■ Egy viszonylag egyszerű ügyben kérném a véleményeteket/segítségeteket:
Adott egy adatbázis, egyszerűség kedvéért 2 tábla:
A: id, b_id
B: id, name
id természetesen primary key, b_id pedig a b.id-vel van kapcsolatban.
Adott a query:
SELECT COUNT(A.id) db, B.name
FROM A
INNER JOIN B ON A.B_id=B.id
GROUP BY B.id
ORDER BY db DESC
LIMIT 0, 10;
Hogyan lehetne gyorsítani?
- myisam/innodb? Jelenleg myisam, próbáltam innodb-vel is, még lassabbnak tűnt.
- Van-e jelentősége, hogy B_id foreign key, vagy csak simán key?
- vagy pedig jöhet a denormalizálás, és vegyek fel B-re egy számláló mezőt, amit triggerrel/php-val updatelek?
A táblaszerkezetek:
CREATE TABLE A (
id bigint(11) unsigned NOT NULL AUTO_INCREMENT,
B_id int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
KEY k_B_id (B_id),
) ENGINE=MyISAM
CREATE TABLE B (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
name varchar(120) CHARACTER SET utf8 COLLATE utf8_hungarian_ci NOT NULL,
PRIMARY KEY (id),
) ENGINE=MyISAM
Köszönöm a segítséget!
szeptember 19
Konstruktív vita: Tárhelyek típusai, előnyök és hátrányok
Weboldalainkat vagy alkalmazásainkat többféleképp helyezhetjük el, hogy ügyfeleink vagy látogatóik elérhessék. Megkérek mindenkit, aki tapasztalatokkal rendelkezik, hogy írja le az egyes típusok pozitívumait és negatívumait, milyen látható és rejtett költségvonzatai lehetnek, és ha elegendő anyag gyűlik össze (két héten belül, október harmadikáig), akkor összedobunk belőle egy blogbejegyzést. Ezt utána bárki linkelheti, hogy a megrendelők objektív döntést tudjanak hozni.
Fontos: Mivel nem csak a jót és szépet osztjuk meg egymással, hisz a törpök élete nem csak játék és mese, ügyeljünk a hangnemre, és hogy a társalgás kulturált mederben follyon! Ez a fórumtéma egy teszt, ha sikeresnek bizonyul, további hasonlóak fogják követni.
A tárhelytípusok a következők:
■ Fontos: Mivel nem csak a jót és szépet osztjuk meg egymással, hisz a törpök élete nem csak játék és mese, ügyeljünk a hangnemre, és hogy a társalgás kulturált mederben follyon! Ez a fórumtéma egy teszt, ha sikeresnek bizonyul, további hasonlóak fogják követni.
A tárhelytípusok a következők:
- osztott tárhely
- saját szerver tárhelyszolgáltatónál
- saját szerver ügyfélnél
- magyar VPS (virtuális szerver)
- nemzetközi VPS (Amazon, Microsoft stb.)
- managed VPS
Vállalkozás létezésének vizsgálata
Elérhető ma olyan nyílt adatbázis, amiben naprakészen ellenőrizni lehet, hogy egy vállalkozás be van e Magyarországon jegyezve? A NAV-nál és Cégbíróságnál lehet ilyen lekérdezéseket csinálni, viszont nekem most arra lenne szükségem, hogy egy weboldalon a regisztrációkor automatikusan kiszűrjem a kamu cégeket. Az adószám lenne az ellenőrzés alapja.
Túl naiv vagyok, hogy mindenkinek érdeke lenne egy ilyen lehetőség?
■ Túl naiv vagyok, hogy mindenkinek érdeke lenne egy ilyen lehetőség?
PhpUnit - közös teszt változók
Van egy olyan - szerintem elhibázot - húzása a phpunit-nak, hogy ha csinálsz egy testcase-t, és abban több teszt metódust, akkor minden teszt metódushoz újra példányosítja a case-t, és futtatja a setup-ot. Be lehet állítani valahogyan, hogy ezt ne tegye, és csak egy testcase példányt hozzon létre, és azon futtassa az összes megadott metódust? Baromira zavaró ez a viselkedése, főleg integrációs teszteknél, ahol igyekszik spórolni az ember az adatok legatterolásával és újra feltöltésével, hogy gyorsak legyenek.
■ DEL: Offshore & Anonymous webhosting [KÜLFÖLD]
Törlésre jelölve: a Weblabor nem támogatja a törvénysértő/szürkezónás magatartást, ezért ezt a téma törlésre kerül. - janoszen
■ szeptember 18
A HU tld titkai
Két kérdésem elvi lényegű, de talán sokakat érdekelhet.
(1) Tegyük fel, hogy évekkel ezelőtt regisztráltam néhány .hu domaint, viszont ezek nincsenek tényleges használatban, csak "parkolnak", és évente, kétévente, vagy talán még ritkábban fizetek némi pénzt egy Pittyputty Kft-nek, hogy a domainekkel kapcsolatos "karbantartást", adminisztrálást elvégezzék.
Mi történik, ha a Pittyputty Kft váratlanul megsemmisül?
Hogyan és kitől szerezhetek tudomást arról, hogy a Pittyputty Kft azért nem küldi az esedékes számlát, mert megszűntek létezni? Ilyenkor egy idő után elveszítem a regisztrált domainek használati jogát, és magamra vessek?
(2) Úgy tudom, hogy a magánhasználatú .hu domainek esetében kötelező megadni a saját címem, nevem és telefonszámom, míg más domainek esetében elég egy bankkártya, és online az egész maceratúra elintézhető.
Eddigi tapasztalataim szerint magyar hosting cégeknél nem zárkóznak el attól, hogy a .hu domain publikusan megjeleníthető (a domain.hu keresőjére gondolok) adataihoz a saját, céges címüket tüntessék fel, de nem tudom, ez elfogadható eljárás-e, illetve hogy külföldi hosting esetében (ha .hu domaint külföldi cégnél szeretnék üzemeltetni) lehetséges-e ilyesmi.
Van-e jele annak, hogy a .hu domain bürokráciája egyszerűsödik, költöztethetőbbé válik a közeljövőben?
■ (1) Tegyük fel, hogy évekkel ezelőtt regisztráltam néhány .hu domaint, viszont ezek nincsenek tényleges használatban, csak "parkolnak", és évente, kétévente, vagy talán még ritkábban fizetek némi pénzt egy Pittyputty Kft-nek, hogy a domainekkel kapcsolatos "karbantartást", adminisztrálást elvégezzék.
Mi történik, ha a Pittyputty Kft váratlanul megsemmisül?
Hogyan és kitől szerezhetek tudomást arról, hogy a Pittyputty Kft azért nem küldi az esedékes számlát, mert megszűntek létezni? Ilyenkor egy idő után elveszítem a regisztrált domainek használati jogát, és magamra vessek?
(2) Úgy tudom, hogy a magánhasználatú .hu domainek esetében kötelező megadni a saját címem, nevem és telefonszámom, míg más domainek esetében elég egy bankkártya, és online az egész maceratúra elintézhető.
Eddigi tapasztalataim szerint magyar hosting cégeknél nem zárkóznak el attól, hogy a .hu domain publikusan megjeleníthető (a domain.hu keresőjére gondolok) adataihoz a saját, céges címüket tüntessék fel, de nem tudom, ez elfogadható eljárás-e, illetve hogy külföldi hosting esetében (ha .hu domaint külföldi cégnél szeretnék üzemeltetni) lehetséges-e ilyesmi.
Van-e jele annak, hogy a .hu domain bürokráciája egyszerűsödik, költöztethetőbbé válik a közeljövőben?
Learn Node.JS with interactive lessons
Interaktív tanulás Node.js-ben, Node.js-ről.
■ szeptember 17
DotRoll költözés
Ma engem is költöztettek és bele is futottam ebbe a hibaüzentbe:
Az elhárítása annyi, hogy a PDO kapcsolat karakterkészlet megadásakor az UTF-8 helyett UTF8 (tehát kötőjel nélkül) a megadandó.
Talán valakinek segít...
Szerk.: Bakker, nem akartam új témát, a megbezható magyar tárhely alá akartam berakni. Valaki áttenné?
■ Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2019] Can't initialize character set UTF-8 (path: /usr/share/mysql/charsets/)'
Az elhárítása annyi, hogy a PDO kapcsolat karakterkészlet megadásakor az UTF-8 helyett UTF8 (tehát kötőjel nélkül) a megadandó.
Talán valakinek segít...
Szerk.: Bakker, nem akartam új témát, a megbezható magyar tárhely alá akartam berakni. Valaki áttenné?
Miért ne üzemeltessünk saját szervert?
A fórumon már sokszor kifejtettem, hogy esküdt ellensége vagyok annak, hogy egy cég/projekt tulajdonos 1-2 gépes környezetben saját fizikai vasat üzemeltessen, illetve enyhébb fokon annak is, hogy egy fejlesztő mellékesben még szervert is üzemeltessen.
Természetesen a látszólagos kézzel fogható előnyöket nehéz megcáfolni, mivel egy gép megvásárlása sokkal kevesebbe kerül, mint bérelni egyet. Éppen ezért ebben a bejegyzésben megpróbálom összeszedni mindazokat a buktatókat, amik a saját szerver üzemeltetése ellen szólnak, és szót ejtek a megfelelő szerverterem választásáról is.
2 szintű legördülő menü
Sziasztok!
Hogy tudom azt megcsinálni, hogy például kiválasztom legördülő menüből, hogy CPU, majd jönne egy újabb lista, amiben a CPU fajtái vannak benne?
■ Hogy tudom azt megcsinálni, hogy például kiválasztom legördülő menüből, hogy CPU, majd jönne egy újabb lista, amiben a CPU fajtái vannak benne?