astere Posted March 31, 2009 Report Share Posted March 31, 2009 Sveicināti! Aiz gara laika izdomāju izveidot koordināšu plakni datubāzē, X no -1000 līdz + 1000 , Y no - 1000 līdz +1000 , tāpat diognāles (x=1;y=1 un uz augšu...) , vienā reizē uz ekrāna tiek parādītas 45 kvadranti ar 45 kverijem (katrai koordinātei) + katram kverijam ir dažādi nosacījumi, piem. x='$x+1' and y='$y-8', tajā pašā laikā , 9 kvadranti, skaitās kā pogas, kuras submitojot tiek mainīts atskaites punkts. Problēma rodas tajā, ka pēc sākuma atskaites punkta updteitošanas "neregulāri" parādās rezultāts - pa vienai koordinātei pēc kārtas, velētos panākt, ka pēc updeita - parādās uzreiz visas koordinātes. 1. Vai nebūtu labāk izmantot iframe plaknei, lai nerefrešotos pārējie mājas lapas dati? Citi ieteikumi? 2. Cik liela iespēja, ka mape daudz ātrāk ielādēsies ja 45 kveriju vietā tiks izmantos viens kverijs ar lielu skaitu JOINIEM ? 3. Vai iespējams iztikt ar vienu "mazu" kveriju, tajā pašā laikā visus aprēķinus veic php ? (dotajā momentā php aprēķina koordinātes pēc kurām tiek atlasīti dati no mysql) 4. varbūt labāk izmantot ajax datu izvadei/updeitošanai? - tiesa tur man nāksies ļoti daudz googlēt :/ 5. Citi varianti/ieteikumi? Karte id |x |y | bilde |adrese | Atskaites punkts |id|liet_id| x | y | untt. | un tt. Quote Link to comment Share on other sites More sharing options...
codez Posted March 31, 2009 Report Share Posted March 31, 2009 1. Vai nebūtu labāk izmantot iframe plaknei, lai nerefrešotos pārējie mājas lapas dati? Citi ieteikumi? Vislabāk ir izmantot ajax. 2. Cik liela iespēja, ka mape daudz ātrāk ielādēsies ja 45 kveriju vietā tiks izmantos viens kverijs ar lielu skaitu JOINIEM ? Necik! Labāk izmantot: 1) vienu kveriju ar nosacījumu x>$x1 and x<$x1+8 and y>$y1 and y<$y+8 2) izmantot Spatial mysql paplašinājumu un indeksu, kas ievērojami palielinās ātrdarbību. Šijā gadīumā kverijs izskatīsies aptuveni šādi: SELECT * FROM tabula WHERE MBRContains(GeomFromText('Polygon(($x1 $y1,$x1 $y2,$x2 $y2,$x2 $y1,$x1 $y1))'),latlng) kur latlng būs TPoint tipa lauks. Un attiecīgi x1,y1- viens tainsstūra stūris, x2,y2-otrs taisnstūra stūris pa diognāli. 3. Vai iespējams iztikt ar vienu "mazu" kveriju, tajā pašā laikā visus aprēķinus veic php ? (dotajā momentā php aprēķina koordinātes pēc kurām tiek atlasīti dati no mysql) atbilde 2. 4. varbūt labāk izmantot ajax datu izvadei/updeitošanai? - tiesa tur man nāksies ļoti daudz googlēt :/ jā Quote Link to comment Share on other sites More sharing options...
astere Posted March 31, 2009 Author Report Share Posted March 31, 2009 Paldies par atbildi, papētīsu/patestēšu daudz tuvāk Spatial iespējas Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted March 31, 2009 Report Share Posted March 31, 2009 2. Cik liela iespēja, ka mape daudz ātrāk ielādēsies ja 45 kveriju vietā tiks izmantos viens kverijs ar lielu skaitu JOINIEM ? 45 kveriji VIENMER izpildiisie lenak nekaa Liels JOIN kverijs ... JO: PHP pusee jaizpilda tikai 1 konekcija/pieprasijums/ datu savaksana no DB nevis 45 Shis ir samera lens proces, var pat teikt ka ' pudeles kakls' , jo dati tiek dznati caur tiklu (nevajag aizmirst, ka arii uz localhost tiek izmantoti tiikla protakoli ) DB: pusee, javeic tikai 1 lietotaju atljaujas parbaude. 1 japarbauda ' kesh atminja' , utt. --- Par to papildu modulju izmantosanu. ja tas tiek dariits trenninjiem, vai savam personigajam projektam uz sava hosta, tad ir OK. savadak labak neizmantot, jo nekad jau nevar zinat kur naksies hosteet .... Quote Link to comment Share on other sites More sharing options...
codez Posted March 31, 2009 Report Share Posted March 31, 2009 Par to papildu modulju izmantosanu. ja tas tiek dariits trenninjiem, vai savam personigajam projektam uz sava hosta, tad ir OK. savadak labak neizmantot,jo nekad jau nevar zinat kur naksies hosteet .... Šis paplašinājums ir iekļauts kopš 5.0.16 versijas un ir vienīgais veids kā mysql indeksēt tabulu pēc 2 parametriem vienlaicīgi, šijā gadījumā x un y koordinātes, vai latitude, longitude, vai vienlagas kādi citi 2 parametri. Ja tev būs karte ar 1000000 objetkiem (piemēram, 1000x1000 kartes gabaliņi), kuri glabājas mysql datu bāzē, tad pat nav citas racionālas iespējas, kā lietot šo mysql paplašinājumu. Quote Link to comment Share on other sites More sharing options...
bubu Posted March 31, 2009 Report Share Posted March 31, 2009 nevajag aizmirst, ka arii uz localhost tiek izmantoti tiikla protakoli ) Tas nav tiesa. MySQL'am, piemēram, ir skip-networking servera parametrs, kas neklausās klientu konekcijas caur tīklu. Tas ļauj piekonektēties tikai lokāli ar lokālām metodēm (named pipes vai shared memory), kuras ir performancīgākas nekā tīkla protokoli. Pie tam - nezinu kā citās OS'ēs, bet Windows'ā konekcija uz localhostu neizmanto īsto networking kodu. Tas tiek emulēts ar named pipe's palīdzību (lasīt - tas ir daudz ātrāk nekā tcp/ip vai citas konekcijas). Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted March 31, 2009 Report Share Posted March 31, 2009 Tas tiek emulēts ar named pipe's palīdzību (lasīt - tas ir daudz ātrāk nekā tcp/ip vai citas konekcijas). Bet tomer tiek emulets Kas arii aiznjem laiku ... Sajaa gadijumaa protams nav tik butiski vai izmanto tcp/ip vai citu varijantu , bet savienojums starp SQL un PHP vienalga ir sameera lena lieta ( ' pudeles kakls' )... Quote Link to comment Share on other sites More sharing options...
bubu Posted March 31, 2009 Report Share Posted March 31, 2009 Es nepareizi izteicos. Nevis emulēts, bet tā (tīkla send/recv/utt) vietā tiek lietotas named pipe send/recv/utt funkciju analogi. Tur overheads ir praktiski nekāds. Atšķirās tikai API interfeiss, funkciju izskats. Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted April 1, 2009 Report Share Posted April 1, 2009 bubu, tīri interes pēc jautājums, kā tu zini visas tās nianses - lasīji dokumentāciju vai pētīji sources? Quote Link to comment Share on other sites More sharing options...
bubu Posted April 1, 2009 Report Share Posted April 1, 2009 Kuras nianses tieši? To, ka mysql var nezimantot tīkla protokolu? To izlasīju mysql dokumentācijā (par to skip-networking argumentu). A par to named pipe izmantošanu localhost konekcijām windows'ā, ja pareizi atceros, tad to izlasīju vienā blogā, kuru raksta developeris no microsofta. Visdrīzāk kautur šajā vietā http://blogs.msdn.com/ (iespējams arī, ka maldos - es nevaru atcerēties to, kur visu uzzinu :) Quote Link to comment Share on other sites More sharing options...
codez Posted April 1, 2009 Report Share Posted April 1, 2009 Ieejot MySQL Administrator GUI toolī pie Startup Variables => General Parametrs, var ielikt ķeksi pie Enable named pipes. Katram parametram ir arī neliels apraksts, ko šis parametrs dara. To pašu protams var mainīt arī caur mysql.ini failu. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.