Rendkívül lassú a PHP-MySQL (localhoston) Windows alatt

Én nem vagyok rajongója annak, hogy Windows alatt futtassunk PHP-MySQL kombinációt. Hisz’ eleve sokkal több erőforrást adunk oda az operációs rendszernek, mint Linux alatt. Nincs meg a fájlrendszerrel való finomhangolás lehetősége sem, valamint az IIS és én sohasem leszünk barátok. Egy projekt alkalmával arra lettem figyelmes, hogy ugyanaz a kód fényévekkel gyorsabban fut Linux alatt, mint Windows alatt, egy egyszerűen semmi logikus magyarázat nem volt rá. Nos a problémát a Windows és a MySQL DNS feloldási anomáliája okozza, de az IPv6 is bekavarhat. Szal’ a PHP-ben a MySQL szerver címénél cseréljük ki a “localhost”-ot, “127.0.0.1”-re, valamint ha nincs rá szükségünk, akkor kapcsoljuk ki a hálózati kártyán az IPv6-ot. A DNS névfeloldás tiltása a my.cnf -ben sajnos nem segít.

Előtte (cache tiltva):

Utána (cache tiltva):

2017.09.28. 14:09 - legyes

Több sor és oszlop egy cellaként MySQL és MariaDB-ben: JSON függvények és a GROUP_CONCAT() együtt

A fejlesztők 2 fajtája nem foglalkozik az adatbázis lekérdezések sebességével több kapcsolódó adatnál: a kezdők és a profik.

A kezdők lekérdezik az alap adatokat, majd egy foreach()-en belül futatják le a kapcsolódó adatok lekérdezését:

foreach ( $products as $product ) {
   $db->query( "SELECT id, thumbnail, url FROM product_images WHERE product_id = :product_id" );
}

A profik is ez csinálják, csak sokkal csillibb kivitelben. Először csinálnak egy Image class-t. Majd egy getAllByProduct( int $product_id ) metódust hozzá. A termék lekérdezésénél pedig vagy a Product konstruktorába teszik – amit a FETCH_CLASS -al használnak ki -, vagy a Product::get( int $product_id ) -be, egy ciklusban. Ami megint ugyanaz csak pepitában.   Olvass tovább…

2017.08.28. 02:22 - legyes

Windows CE eszköz csatlakoztatása Windows 10-et futtató számítógéphez

A Windows 10-ben sajnos megszűnt a Windows CE támogatás, de egy kis registry hackeléssel még engedélyezhető a dolog. Ehhez telepítve kell lennie a Windows Vistahoz elérhető Windows Mobile Eszközközpont 6.1-es szoftvernek ( https://www.microsoft.com/hu-HU/download/details.aspx?id=3182 és a 32 bites változat https://www.microsoft.com/hu-HU/download/details.aspx?id=14 ).

Szerencsére a StackOverflow megadja a választ: https://stackoverflow.com/questions/32052429/how-to-connect-a-windows-mobile-pda-to-windows-10#answer-44564617 . Az alábbit futtassuk le rendszergazda jogokkal, majd indítsuk újra a számítógépet és csatlakoztassuk újra a Windows CE-s eszközt:

 

REG ADD HKLM\SYSTEM\CurrentControlSet\Services\RapiMgr /v SvcHostSplitDisable /t REG_DWORD /d 1 /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\WcesComm /v SvcHostSplitDisable /t REG_DWORD /d 1 /f
2017.07.11. 10:14 - legyes

Új sor karakter hozzáadása textarea tartalomhoz

Az alábbi példa az egyszerűség kedvéért jQuery-vel val, de natív JS-ben ugyanezt a karaktert ( 
 ) kell hozzáfűzni. Sajnos a \\\n megoldás nekem nem működött jól, mert kint maradt egy \ jel.

$(‘#textarea_id’).append(‘
‘);

2017.06.19. 14:42 - legyes

7zip command-line mappa kihagyása linux alatt

A 7zip tömörítő lett korunk WinRar-ja. Népszerűsége még mindig növekszik és elérhető több operációs rendszeren is. A nagy méretű és sok fájlt tartalmazó mappákkal is kevesebb buktatóval dolgozik, mint az oly’ népszerű tar+gz. Viszont a dokumentáció nem mindig egyértelmű, reáadásul linux alatt eléggé sok néven érhető el a különböző disztribuciókban ( 7z, 7za, 7zr, …).

A leggyakrabban használt formája ez:

7z a -mx1 arcive.7z /home/legyes/path/to

Viszont ha szükségünk van arra, hogy bizonyos mappákat hagyjuk ki, akkor a dokumentációban elfelejtik egy fontos dologra felhívni a figyelmünket: Linux alatt a ! jel speciális karakter, ezért escapelni kell \! formában, azaz így kell megadni:

7z a -mx1 archive.7z /home/legyes/path/to -xr\!excluded_directory

A kizárt mappa relatív a tömörítendő mappához képest, ami ugyancsak ritkán van megemlítve.

2017.04.22. 17:24 - legyes

MySQL: GROUP_CONCAT() méretének növelése a sessionben

Sokan elkövetik azt a hibát, hogy a MySQL lekéréseket PHP ciklusba teszik, mert másképpen szerintük nem megoldható, hogy több soros eredményt tegyünk bele 1 SQL cellába a lekérdezés eredményénél. Ez a rossz módszer természetesen nagyon erőforrás pazarló és a weboldalak sebesség problémáinak nagy részét is ez okozza.

Az egyik jó megoldás ennek elkerülésére, ha a GROUP_CONCAT() paranccsal egyesítjük a subquery sorait. Viszont alapértelmezetten ebbe csak viszonyag rövid eredmény fér, így nagy eséllyel le lesz vágva a válasz vége. A méret néveléshez adjuk ki az SQL kérés előtt a következő parancsot:

SET SESSION group_concat_max_len = 100000;

Olvass tovább…

2017.04.03. 13:37 - legyes

Windows 10: Nem sikerült bejelentkezni a fiókjába

2017 márciusában a Microsoft egy új frissítéssel örvendeztette meg a felhasználókat: KB4013418 . Ami különösen örvendetes benne, hogy a telepítés után megsérül a profil, ezért vagy nem lehetséges a bejelentkezés, vagy ideiglenes profil jön létre. A szokásos profil registry hack nem segít, de az új profil létrehozása és abba a régi belemásolása sem tűnik működő megoldásnak, ugyanis az is sérültként indul.

Update #1: Úgy tűnik, hogy a Windows Update és az Avast! együtt okozza a bajt: https://hup.hu/node/152615

Az update eltávolításához rendszergazdai command-lineba az alábbi parancsot kell futtatni. Viszont az eltávolítás a problémát nem oldja meg, és a következő újraindításkor vagy kikapcsoláskor újra települ.

wusa /uninstall /kb:4013429

FIGYELEM! A profilokkal való szórakozás adatvesztést eredményezhet, ugyanis sok program a beállításait itt tárolja. Nyilván a háttérképért annyira nem kár, de a letöltött levelekért, dokumentumokért igen. Ezért ha töröljük a sérült fiókot, legalább próbáljuk meg ezeket kimásolni belőle előtte. Arra viszont ügyeljünk, hogy a másoláskor a jogosultsága/tulajdonosa változhat ezeknek! Ha elkerülhetetlen, hogy a hibás profil helyett újat készítsünk, igyekezzünk a sérült profilt megőrizni a jogosultságaival együtt (pl. csak nevezzük át).

Erősen ajánlott bitszintű mentést készíteni, mielőtt nekiállnánk széthackelni a profilt vagy a registry-t, mert nagyobb kárt okozhatunk, mint a hibás frisítés.
Olvass tovább…

2017.03.20. 11:25 - legyes

XML konvertálása JSON objektummá vagy asszociatív tömbbé PHP-vel

Annak ellenére, hogy a JSON nagyon hódít – nyilvánvaló okok miatt, még mindig nagyon sokan használnak XML formátumokat. Többek között ilyen az RSS feed is, de az egyik legerősebb marketinggel rendelkező bérelhető webshop API-ja is, a ShopRenteré. XML-el dolgozni viszont rémálom a JSON-höz képest. Így hát felmerült a probléma, hogy  valami egyszerű megoldás kellene, ahelyett, hogy minden XML-t végignézek. Olvass tovább…

2017.02.08. 00:45 - legyes

JSON képes MySQL 5.7 telepítése Debian linuxra

A NoSQL hullám nagyon hódít, amivel én nem feltétlenül értek egyet, mert azt vallom, hogy mindent arra kell használni, amire való (azaz adatok tárolására, szűrésére, stb. SQL-t). Az egyik fő indok mellette azt szokott lenni, hogy JSON objektumokat lehet benne tárolni és azokkal lehet dolgozni. Így  kliens oldal eleve készen kapja, nem kell a backenden összerakni és szétszedni újra és újra. Olvass tovább…

2017.02.06. 15:03 - legyes
1 2 3 8