Image representing MySQL as depicted in CrunchBase

Преди известно време бях писал за MySQL Full Text Search 🙂 Днес имах много интересно преживяване с една заявка. В общи линии заявката търси за резултати който липсват друга таблица. Един основне Select и един sub select в WHERE частта на заявката. В общи линии скелета и е

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

В общи линии елементарна заявка. Написах я за 30 сек пускам я и зацикли машината. След дълго и търпеливо чакане от моя страна или по точно ~43 сек . Ми се изплю резултат lol . Пффф лудница. Влизам в машината гледам процесора е нормално натоварен почти в idle състояние. Шок и ужас. Пускам пак заявката пак същия резултат. Fuck WTF. Пускам explain на заявката и всичко лъснавторото поле secondTextField е само full text search без index, а там табличката е скромна от около 35к реда. Кой да четеfull text search не е индекс. Вече е ясен проблема набързо едно

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

И нещата си дойдоха на местата Query took 0.0005 sec 😀

Внимавайте как си слагате индексите от тях ви зависи маргинално скоростта на заявката.

p.s Като цяло аз съм си крив за горната ситуация не само защото липсва индекс ами защото не ползва full text search метода 😀

Parannettu Zemanta

Noin kuusi kuukautta sen jälkeen, kun viimeinen arvostelu Dreambox seuranta siteshemale minua en voi anunciam uusi ja luultavasti yksi viimeisistä versiot Nuka. Версията беше готова още преди 2 kuukautta, mutta kun koska laiskuus, mistä johtuen testaus asiat pozabavim ilmoitus. Muutaman päivän työn 32 dreambox 500-s ja Yleensä tulokset ovat erittäin hyviä. Muutokset olivat hyvin – poistettu oli editstate zavisimost alkaen Linux palvelin siirtää lokit – sinun ei tarvitse olla apache + php, koska uuden järjestelmän lokien tallentaminen, toimi parametrit php-skripti palvelimella. Olen myös muuttanut skripti ajaa ilman backend – jos sinulla on satelliitti-vastaanottimet järkevää olet jatkuvasti ajaa palvelin, josta se otetaan inPhoto niin voi aiheuttaa hardcode kirjoitus 2 info variable CAM ja. Olen myös ilmoittanut, ylimääräinen muuttuja testaus – jos et halua, että olet heilauttamalla lehtiä – taas typerä virhe, verrattuna aiemmin 🙂 Valo popraviti koodi oli napraveno, että on ikään kuin kirjoittanut semi-lukutaitoisia idiootti (ei minun, tietenkin, de). Terävä olimme 2 kriittisiä virheitä koodi, joka johtaa irtisanomiseen script jossain random hetki, taas oligofrenski laiminlyönneistä minun osaltani. Kaiken kaikkiaan kirjoitus ei hyvin yksinkertainen harkita tehdä kuin ihmiset, mikä on busybox ja tuhka eivät ole helpoimpia asioita kesyttää. Tällä kertaa en voi säästää suuria paasaavat koodin ja selittää, mitä muuttujat ovat, mitä varten ja mitä toimia voidaan tehdä se (uusi) 🙂

SERVER="192.168.100.1"
 STANDALONE="FALSE" #using like stand alone app no server side depends ; )
 HCAM1="" ## if starting like stand alone app give me CAM namezzz if HCAM1 is empty its means chanel is free
 HCAM2="" ## CAM2 name
 PORT="666" # port rockzzz : D : )))))))))))))))))
 IP=$(ifconfig eth0 | grep inet | awk '{print $2}' | sed -e '[email protected]:@@')
 FILE='/tmp/debug'
 INFO='/tmp/info_file'
 NC=$(which nc)
 WGET=$(which wget)
 MAX_DAYS="10"
 TIMEOUT="600"
 MAX=70 #max cpu usage per process
DEBUGING="TRUE" #if u wanna script send debug information set DEBUGING to TRUE if SEVERLESS is set to true this var will be skiped
 NEWDBGSTYLE="TRUE" #debuging new style sending info to apache derectly, old style using nc

Niin, ilmeisesti, nimet promenliva puhua itselleen tarpeeksi, mutta en voi sanoa yksi asia, ja toinen fiksu sana.

PAIKALLA on yksi tärkeimmistä muuttujista, jos setData, TOTTA, ei pakoa palvelimelle ja ei vaadi riippuu palvelimeen, jos et käytä sitä, sinun täytyy laittaa arvot ja seuraavat HCAM1 (En tiedä, miksi nimesin sen niin, että en muista, mutta ei väliä). Jos ei stoinost, ja käsikirjoitus sisältää erillisen käsikirjoituksen on tarkoitus työstää salaamaton kanava, ja ei, tarkista decrypters moduuli, jos on testata tietyn stoinost. HCAM2 on valinnainen, jos moduuli käyttää vain 1 prosessi, sanoa esimerkiksi CCcam.

HALLINTAAN toinen mielenkiintoinen muuttuja on sinun prloe tietoja tai vaieta riippuu siitä, mitä arvo olet jumissa. Auotmation on rauhallinen, debug, jos PAIKALLA se on TOTTA

NEWDBGSTYLE tuhlausta tärkeä muuttuja. Se määrittelee, miten siirretään log server. Jos TOTTA, on uusi ei riippumatta siitä, netcat. Jos kuitenkin vanha menetelmä laskemisesta VÄÄRIÄ. Enimmäkseen nämä ovat asioita, jotka täytyy keskittyä, mutta luulen, että, huolimatta rajuja muutoksia, pysyy läpinäkyvä idea default 🙂

Ehdottomasti, olen erittäin tyytyväinen siihen, miten asiat menivät – скрипта стана достатъчно гъвкав отпднаха идиотките зависимост на допълнителни файлове за функции както и вече отпдна и зависимост на nc мисля или пък нуждата от сървър и прочие не всеки ползва 30+ box-a че да има и сървър или пък може да има само някакъв домаше router. Все още има какво да се подобри но засега мисля да се въздържам от таквиа неща защото не е наложително 🙂

Файловете както обикновено се намират в директорията а крипта за въвеждане на логовете може да свалите от täällä

И по случай добрия скрипт едно ускорено парче за всички ускорители 😀

Parannettu Zemanta