ucuz escort adana escort adiyaman escort afyon escort agri escort aksaray escort amasya escort ankara escort antalya escort ardahan escort artvin escort aydin escort balikesir escort bartin escort batman escort bayburt escort bilecik escort bingol escort bitlis escort bolu escort burdur escort bursa escort canakkale escort cankiri escort corum escort denizli escort diyarbakir escort duzce escort edirne escort elazig escort erzincan escort erzurum escort eskisehir escort gaziantep escort giresun escort gumushane escort hakkari escort hatay escort igdir escort isparta escort istanbul escort izmir escort kahramanmaras escort karabuk escort karaman escort kars escort kastamonu escort kayseri escort kibris escort kirikkale escort kirklareli escort kirsehir escort kilis escort kocaeli escort konya escort kutahya escort malatya escort manisa escort mardin escort mersin escort mugla escort mus escort nevsehir escort nigde escort ordu escort osmaniye escort rize escort sakarya escort samsun escort siirt escort sinop escort sivas escort sanliurfa escort sirnak escort tekirdag escort tokat escort trabzon escort tunceli escort usak escort van escort yalova escort yozgat escort zonguldak escort

izmir escort karabağlar escort karşıyaka escort ödemiş escort tire escort urla escort konak escort çeşme escort alsancak escort buca escort bornova escort aliağa escort bergama escort çiğli escort

adalar escort arnavutkoy escort atasehir escort avcilar escort bagcilar escort bahcelievler escort bakirkoy escort basaksehir escort bayrampasa escort besiktas escort beykoz escort beylikduzu escort beyoglu escort kucukcekmece escort buyukcekmece escort dudullu escort catalca escort cekmekoy escort esenler escort esenyurt escort eyupsultan escort fatih escort gaziosmanpasa escort gungoren escort kadikoy escort kagithane escort kartal escort maltepe escort pendik escort sancaktepe escort sariyer escort silivri escort sultanbeyli escort sultangazi escort sile escort sisli escort tuzla escort umraniye escort uskudar escort zeytinburnu escort manavgat escort alanya escort side escort belek escort akseki escort aksu escort demre escort dosemealti escort elmali escort finike escort gazipasa escort gundogmus escort ibradi escort kas escort kemer escort kepez escort konyaalti escort korkuteli escort kumluca escort muratpasa escort serik escort tekirova escort camyuva escort konakli escort mahmutlar escort isiklar escort kumkoy escort taksim escort bebek escort seyhan escort yuregir escort cukurova escort saricam escort ceyhan escort kozan escort imamoglu escort karatas escort karaisali escort pozanti escort yumurtalik escort tufanbeyli escort feke escort aladag escort saimbeyli escort kahta escort besni escort golbasi escort gerger escort sincik escort celikhan escort tut escort samsat escort sandikli escort dinar escort bolvadin escort emirdag escort sinanpasa escort suhut escort cay escort ihsaniye escort iscehisar escort sultandagi escort cobanlar escort dazkiri escort basmakci escort hocalar escort bayat escort evciler escort kiziloren escort patnos escort dogubayazit escort diyadin escort eleskirt escort tutak escort taslicay escort hamur escort ortakoy escort eskil escort gulagac escort sultanhani escort guzelyurt escort agacoren escort sariyahsi escort merzifon escort suluova escort tasova escort gumushacikoy escort goynucek escort hamamozu escort kecioren escort cankaya escort yenimahalle escort mamak escort etimesgut escort sincan escort altindag escort pursaklar escort golbasi escort polatli escort cubuk escort kahramankazan escort beypazari escort elmadag escort akyurt escort sereflikochisar escort haymana escort kizilcahamam escort nallihan escort bala escort ayas escort kalecik escort camlidere escort gudul escort evren escort gole escort cildir escort hanak escort posof escort damal escort hopa escort borcka escort arhavi escort yusufeli escort savsat escort ardanuc escort kemalpasa escort murgul escort efeler escort nazilli escort soke escort kusadasi escort didim escort incirliova escort cine escort germencik escort bozdogan escort kosk escort kuyucak escort kocarli escort sultanhisar escort karacasu escort buharkent escort yenipazar escort karpuzlu escort karesi escort altieylul escort edremit escort bandirma escort gonen escort ayvalik escort burhaniye escort bigadic escort susurluk escort dursunbey escort sindirgi escort erdek escort ivrindi escort havran escort kepsut escort manyas escort savastepe escort gomec escort balya escort marmara escort ulus escort amasra escort kurucasile escort kozluk escort sason escort besiri escort gercus escort hasankeyf escort demirozu escort aydintepe escort bozuyuk escort osmaneli escort sogut escort pazaryeri escort golpazari escort yenipazar escort inhisar escort solhan escort genc escort karliova escort adakli escort kigi escort yedisu escort yayladere escort tatvan escort guroymak escort ahlat escort hizan escort mutki escort adilcevaz escort gerede escort mudurnu escort goynuk escort mengen escort yenicaga escort dortdivan escort seben escort kibriscik escort bucak escort golhisar escort yesilova escort cavdir escort tefenni escort karamanli escort aglasun escort altinyayla escort celtikci escort kemer escort osmangazi escort yildirim escort nilufer escort inegol escort gemlik escort mudanya escort mustafakemalpasa escort gursu escort karacabey escort orhangazi escort kestel escort yenisehir escort iznik escort orhaneli escort keles escort buyukorhan escort harmancik escort biga escort can escort gelibolu escort ayvacik escort yenice escort ezine escort bayramic escort lapseki escort gokceada escort eceabat escort bozcaada escort avsallar escort beldibi escort bodrum escort cankiri escort cekirge escort cerkes escort cikcili escort ciplakli escort dikmen escort dodurga escort dokuma escort egil escort eldivan escort emisbeleni escort enez escort ergani escort golturkbuku escort golyaka escort gorele escort gorukle escort guce escort guller pinari escort gumbet escort gumushane escort gumusluk escort gumusova escort gundogan escort guney escort gunyuzu escort guzelbag escort han escort hani escort havsa escort hazro escort hinis escort honaz escort horasan escort igdir escort ilgaz escort ilic escort incekum escort inonu escort ipsala escort iskenderun escort iskilip escort islahiye escort ispir escort kale escort kandira escort karacoban escort karahayit escort karakocan escort karakoyunlu escort karamursel escort karayazi escort kargi escort kargicak escort karkamis escort kartepe escort kayapinar escort kaynasli escort kazimkarabekir escort keban escort keciborlu escort kelkit escort kemah escort kemaliye escort kesan escort kesap escort kirikhan escort kizilay escort kizilirmak escort kocaeli escort kocakoy escort kocasinan escort kofcaz escort koprukoy escort korfez escort korgun escort kose escort kovancilar escort kulp escort kulu escort kumlu escort kure escort kursunlu escort kurtun escort lacin escort lalapasa escort lara escort lice escort luleburgaz escort maden escort mahmudiye escort marmaris escort mazidagi escort mecitozu escort melikgazi escort meram escort meric escort merkezefendi escort mezitli escort midyat escort mihalgazi escort mihaliccik escort mucur escort musabeyli escort mut escort narman escort nizip escort nurdagi escort nurhak escort nusaybin escort oba escort odunpazari escort oguzeli escort oguzlar escort oltu escort olur escort omerli escort onikisubat escort orta escort ortaca escort ortakent escort ortakoy escort osmancik escort otlukbeli escort ovacik escort palandoken escort palu escort pamukkale escort pasinler escort payas escort pazarcik escort pazarlar escort pazaryolu escort pehlivankoy escort persembe escort piraziz escort pinarbasi escort pinarbasi escort pinarhisar escort polateli escort pozcu escort puturge escort refahiye escort reyhanli escort sabanozlu escort safranbolu escort sahinbey escort salihli escort samandag escort sapanca escort saphane escort saraykoy escort sarayonu escort saricakaya escort sarigol escort sarikamis escort sariveliler escort sarkikaraagac escort saruhanli escort savur escort sebinkarahisar escort sehitkamil escort sehzadeler escort selcuklu escort selendi escort selim escort semdinli escort senirkent escort senkaya escort senpazar escort serdivan escort serinhisar escort seydikemer escort seydiler escort seydisehir escort seyitgazi escort silifke escort silvan escort simav escort siran escort siverek escort sivrice escort sivrihisar escort sogutlu escort soma escort sulakyurt escort suloglu escort sumbas escort sungurlu escort sur escort suruc escort susehri escort susuz escort sutculer escort talas escort tarakli escort tarsus escort taskent escort taskopru escort tavas escort tavsanli escort tekkekoy escort tekman escort tepebasi escort tercan escort terme escort tirebolu escort tomarza escort toprakkale escort torba escort toroslar escort tortum escort torul escort tosmur escort tosya escort trabzon escort tunceli escort turgutlu escort turgutreis escort turhal escort turkbuku escort turkeli escort turkoglu escort tuzluca escort tuzlukcu escort ugurludag escort ula escort ulas escort ulubey escort uluborlu escort uludere escort ulukisla escort unye escort urgup escort uzumlu escort uzundere escort uzunkopru escort vakfikebir escort van escort varto escort vezirkopru escort viransehir escort vize escort yaglidere escort yahsihan escort yahyali escort yakakent escort yakutiye escort yalihuyuk escort yalikavak escort yalova escort yalvac escort yaprakli escort yatagan escort yavuzeli escort yayladagi escort yazihan escort yenice escort yenisarbademli escort yenisehir escort yenisehir escort yesilli escort yesilyurt escort yigilca escort yildizeli escort yomra escort yozgat escort yuksekova escort yunak escort yunusemre escort zara escort zile escort zonguldak escort 19 mayis escort abana escort acigol escort acipayam escort adapazari escort afsin escort agin escort agli escort ahirli escort ahmetli escort akcaabat escort akcadag escort akcakale escort akcakent escort akcakoca escort akcay escort akdagmadeni escort akdeniz escort akhisar escort akincilar escort akkus escort akoren escort akpinar escort aksehir escort akyaka escort akyarlar escort akyazi escort alaca escort alacakaya escort alacam escort alapli escort alasehir escort almus escort alpu escort altinekin escort altinordu escort altinova escort altinozu escort altintas escort altinyayla escort altinparmak escort altunhisar escort alucra escort anamur escort andirin escort antakya escort araban escort arac escort arakli escort aralik escort arapgir escort ardesen escort arguvan escort arifiye escort aricak escort armutlu escort arpacay escort arsin escort arsuz escort artuklu escort asarcik escort askale escort aslanapa escort atabey escort atakum escort atkaracalar escort avanos escort ayancik escort aybasti escort aydincik escort aydincik escort ayranci escort azdavay escort aziziye escort babadag escort babaeski escort bafra escort baglar escort bahce escort bahcesaray escort bahsili escort baklan escort baliseyh escort banaz escort basiskele escort baskale escort baskil escort basyayla escort battalgazi escort bayat escort bayramoren escort bekilli escort belen escort besikduzu escort beyagac escort beylikova escort beysehir escort beytussebap escort birecik escort bismil escort bitez escort bogazkale escort bogazliyan escort bor escort bosna escort boyabat escort bozkir escort bozkurt escort bozkurt escort bozova escort boztepe escort bozyazi escort bulancak escort bulanik escort buldan escort bunyan escort caglayancerit escort cal escort caldiran escort camardi escort camas escort cameli escort camlihemsin escort camliyayla escort camoluk escort canakci escort candir escort canik escort cardak escort carsamba escort carsibasi escort cat escort catak escort catalpinar escort catalzeytin escort cavdarhisar escort caybasi escort caycuma escort cayeli escort cayiralan escort cayirli escort cayirova escort caykara escort cekerek escort celebi escort celtik escort cemisgezek escort cerkezkoy escort cermik escort ceylanpinar escort cicekdagi escort cide escort cifteler escort ciftlik escort ciftlikkoy escort cihanbeyli escort cilimli escort civril escort cizre escort cinar escort cinarcik escort corlu escort cukurca escort cumayeri escort cumra escort cungus escort daday escort dalaman escort darende escort dargecit escort darica escort datca escort defne escort delice escort demirci escort demirkoy escort derbent escort derebucak escort derecik escort dereli escort derepazari escort derik escort derince escort derinkuyu escort dernekpazari escort develi escort devrek escort devrekani escort dicle escort digor escort dilovasi escort divrigi escort doganhisar escort dogankent escort dogansehir escort doganyol escort doganyurt escort domanic escort dortyol escort dulkadiroglu escort dumlupinar escort duragan escort duzici escort duzkoy escort edremit escort eflani escort egirdir escort ekinozu escort elbeyli escort elbistan escort emet escort emirgazi escort erbaa escort ercis escort erdemli escort eregli escort eregli escort erenler escort erfelek escort ergene escort ermenek escort erzin escort eskipazar escort esme escort espiye escort eynesil escort eyyubiye escort fatsa escort ferizli escort fethiye escort findikli escort gediz escort gelendost escort gemerek escort gerze escort gevas escort geyve escort gokcebey escort goksun escort golcuk escort golkoy escort golmarmara escort gordes escort guclukonak escort gulnar escort gulsehir escort gulyali escort guneysinir escort guneysu escort gurgentepe escort gurpinar escort gurun escort hacibektas escort hadim escort hafik escort halfeti escort haliliye escort halkapinar escort hanonu escort harran escort hasanbeyli escort haskoy escort hassa escort havza escort hayrabolu escort hayrat escort hekimhan escort hemsin escort hendek escort hilvan escort hisarcik escort hozat escort huyuk escort icel escort icmeler escort idil escort ihsangazi escort ikizce escort ikizdere escort ilgin escort ilkadim escort imranli escort incesu escort inebolu escort ipekyolu escort iyidere escort kabaduz escort kabatas escort kadirli escort kadinhani escort kadisehri escort kagizman escort kale escort kalkandere escort kaman escort kangal escort kapakli escort karahalli escort karakecili escort karakopru escort karapinar escort karapurcek escort karasu escort karatay escort kavak escort kavaklidere escort kaynarca escort keskin escort kilimli escort kirkagac escort kiziltepe escort kocaali escort koprubasi escort koprubasi escort korgan escort korkut escort koycegiz escort koyulhisar escort kozakli escort kozlu escort kula escort kuluncak escort kumru escort ladik escort macka escort malazgirt escort malkara escort marmaraereglisi escort mazgirt escort mentese escort mesudiye escort milas escort muradiye escort muratli escort nazimiye escort niksar escort of escort ortahisar escort ovacik escort ozalp escort pamukova escort pazar escort pertek escort pulumur escort resadiye escort salipazari escort salpazari escort saray escort saray escort sarayduzu escort saraykent escort sarikaya escort sarkisla escort sarkoy escort sefaatli escort silopi escort sivasli escort sorgun escort suleymanpasa escort surmene escort termal escort tonya escort tusba escort ulubey escort yenifakili escort yerkoy escort buca escort karabaglar escort bornova escort karsiyaka escort

adalar escort arnavutkoy escort atasehir escort avcilar escort bagcilar escort bahcelievler escort bakirkoy escort basaksehir escort bayrampasa escort besiktas escort beykoz escort beylikduzu escort beyoglu escort kucukcekmece escort buyukcekmece escort dudullu escort catalca escort cekmekoy escort esenler escort esenyurt escort eyupsultan escort fatih escort gaziosmanpasa escort gungoren escort kadikoy escort kagithane escort kartal escort maltepe escort pendik escort sancaktepe escort sariyer escort silivri escort sultanbeyli escort sultangazi escort sile escort sisli escort tuzla escort umraniye escort uskudar escort zeytinburnu escort manavgat escort alanya escort side escort belek escort akseki escort aksu escort demre escort dosemealti escort elmali escort finike escort gazipasa escort gundogmus escort ibradi escort kas escort kemer escort kepez escort konyaalti escort korkuteli escort kumluca escort muratpasa escort serik escort tekirova escort camyuva escort konakli escort mahmutlar escort isiklar escort kumkoy escort taksim escort bebek escort seyhan escort yuregir escort cukurova escort saricam escort ceyhan escort kozan escort imamoglu escort karatas escort karaisali escort pozanti escort yumurtalik escort tufanbeyli escort feke escort aladag escort saimbeyli escort kahta escort besni escort golbasi escort gerger escort sincik escort celikhan escort tut escort samsat escort sandikli escort dinar escort bolvadin escort emirdag escort sinanpasa escort suhut escort cay escort ihsaniye escort iscehisar escort sultandagi escort cobanlar escort dazkiri escort basmakci escort hocalar escort bayat escort evciler escort kiziloren escort patnos escort dogubayazit escort diyadin escort eleskirt escort tutak escort taslicay escort hamur escort ortakoy escort eskil escort gulagac escort sultanhani escort guzelyurt escort agacoren escort sariyahsi escort merzifon escort suluova escort tasova escort gumushacikoy escort goynucek escort hamamozu escort kecioren escort cankaya escort yenimahalle escort mamak escort etimesgut escort sincan escort altindag escort pursaklar escort golbasi escort polatli escort cubuk escort kahramankazan escort beypazari escort elmadag escort akyurt escort sereflikochisar escort haymana escort kizilcahamam escort nallihan escort bala escort ayas escort kalecik escort camlidere escort gudul escort evren escort gole escort cildir escort hanak escort posof escort damal escort hopa escort borcka escort arhavi escort yusufeli escort savsat escort ardanuc escort kemalpasa escort murgul escort efeler escort nazilli escort soke escort kusadasi escort didim escort incirliova escort cine escort germencik escort bozdogan escort kosk escort kuyucak escort kocarli escort sultanhisar escort karacasu escort buharkent escort yenipazar escort karpuzlu escort karesi escort altieylul escort edremit escort bandirma escort gonen escort ayvalik escort burhaniye escort bigadic escort susurluk escort dursunbey escort sindirgi escort erdek escort ivrindi escort havran escort kepsut escort manyas escort savastepe escort gomec escort balya escort marmara escort ulus escort amasra escort kurucasile escort kozluk escort sason escort besiri escort gercus escort hasankeyf escort demirozu escort aydintepe escort bozuyuk escort osmaneli escort sogut escort pazaryeri escort golpazari escort yenipazar escort inhisar escort solhan escort genc escort karliova escort adakli escort kigi escort yedisu escort yayladere escort tatvan escort guroymak escort ahlat escort hizan escort mutki escort adilcevaz escort gerede escort mudurnu escort goynuk escort mengen escort yenicaga escort dortdivan escort seben escort kibriscik escort bucak escort golhisar escort yesilova escort cavdir escort tefenni escort karamanli escort aglasun escort altinyayla escort celtikci escort kemer escort osmangazi escort yildirim escort nilufer escort inegol escort gemlik escort mudanya escort mustafakemalpasa escort gursu escort karacabey escort orhangazi escort kestel escort yenisehir escort iznik escort orhaneli escort keles escort buyukorhan escort harmancik escort biga escort can escort gelibolu escort ayvacik escort yenice escort ezine escort bayramic escort lapseki escort gokceada escort eceabat escort bozcaada escort avsallar escort beldibi escort bodrum escort cankiri escort cekirge escort cerkes escort cikcili escort ciplakli escort dikmen escort dodurga escort dokuma escort egil escort eldivan escort emisbeleni escort enez escort ergani escort golturkbuku escort golyaka escort gorele escort gorukle escort guce escort guller pinari escort gumbet escort gumushane escort gumusluk escort gumusova escort gundogan escort guney escort gunyuzu escort guzelbag escort han escort hani escort havsa escort hazro escort hinis escort honaz escort horasan escort igdir escort ilgaz escort ilic escort incekum escort inonu escort ipsala escort iskenderun escort iskilip escort islahiye escort ispir escort kale escort kandira escort karacoban escort karahayit escort karakocan escort karakoyunlu escort karamursel escort karayazi escort kargi escort kargicak escort karkamis escort kartepe escort kayapinar escort kaynasli escort kazimkarabekir escort keban escort keciborlu escort kelkit escort kemah escort kemaliye escort kesan escort kesap escort kirikhan escort kizilay escort kizilirmak escort kocaeli escort kocakoy escort kocasinan escort kofcaz escort koprukoy escort korfez escort korgun escort kose escort kovancilar escort kulp escort kulu escort kumlu escort kure escort kursunlu escort kurtun escort lacin escort lalapasa escort lara escort lice escort luleburgaz escort maden escort mahmudiye escort marmaris escort mazidagi escort mecitozu escort melikgazi escort meram escort meric escort merkezefendi escort mezitli escort midyat escort mihalgazi escort mihaliccik escort mucur escort musabeyli escort mut escort narman escort nizip escort nurdagi escort nurhak escort nusaybin escort oba escort odunpazari escort oguzeli escort oguzlar escort oltu escort olur escort omerli escort onikisubat escort orta escort ortaca escort ortakent escort ortakoy escort osmancik escort otlukbeli escort ovacik escort palandoken escort palu escort pamukkale escort pasinler escort payas escort pazarcik escort pazarlar escort pazaryolu escort pehlivankoy escort persembe escort piraziz escort pinarbasi escort pinarbasi escort pinarhisar escort polateli escort pozcu escort puturge escort refahiye escort reyhanli escort sabanozlu escort safranbolu escort sahinbey escort salihli escort samandag escort sapanca escort saphane escort saraykoy escort sarayonu escort saricakaya escort sarigol escort sarikamis escort sariveliler escort sarkikaraagac escort saruhanli escort savur escort sebinkarahisar escort sehitkamil escort sehzadeler escort selcuklu escort selendi escort selim escort semdinli escort senirkent escort senkaya escort senpazar escort serdivan escort serinhisar escort seydikemer escort seydiler escort seydisehir escort seyitgazi escort silifke escort silvan escort simav escort siran escort siverek escort sivrice escort sivrihisar escort sogutlu escort soma escort sulakyurt escort suloglu escort sumbas escort sungurlu escort sur escort suruc escort susehri escort susuz escort sutculer escort talas escort tarakli escort tarsus escort taskent escort taskopru escort tavas escort tavsanli escort tekkekoy escort tekman escort tepebasi escort tercan escort terme escort tirebolu escort tomarza escort toprakkale escort torba escort toroslar escort tortum escort torul escort tosmur escort tosya escort trabzon escort tunceli escort turgutlu escort turgutreis escort turhal escort turkbuku escort turkeli escort turkoglu escort tuzluca escort tuzlukcu escort ugurludag escort ula escort ulas escort ulubey escort uluborlu escort uludere escort ulukisla escort unye escort urgup escort uzumlu escort uzundere escort uzunkopru escort vakfikebir escort van escort varto escort vezirkopru escort viransehir escort vize escort yaglidere escort yahsihan escort yahyali escort yakakent escort yakutiye escort yalihuyuk escort yalikavak escort yalova escort yalvac escort yaprakli escort yatagan escort yavuzeli escort yayladagi escort yazihan escort yenice escort yenisarbademli escort yenisehir escort yenisehir escort yesilli escort yesilyurt escort yigilca escort yildizeli escort yomra escort yozgat escort yuksekova escort yunak escort yunusemre escort zara escort zile escort zonguldak escort 19 mayis escort abana escort acigol escort acipayam escort adapazari escort afsin escort agin escort agli escort ahirli escort ahmetli escort akcaabat escort akcadag escort akcakale escort akcakent escort akcakoca escort akcay escort akdagmadeni escort akdeniz escort akhisar escort akincilar escort akkus escort akoren escort akpinar escort aksehir escort akyaka escort akyarlar escort akyazi escort alaca escort alacakaya escort alacam escort alapli escort alasehir escort almus escort alpu escort altinekin escort altinordu escort altinova escort altinozu escort altintas escort altinyayla escort altinparmak escort altunhisar escort alucra escort anamur escort andirin escort antakya escort araban escort arac escort arakli escort aralik escort arapgir escort ardesen escort arguvan escort arifiye escort aricak escort armutlu escort arpacay escort arsin escort arsuz escort artuklu escort asarcik escort askale escort aslanapa escort atabey escort atakum escort atkaracalar escort avanos escort ayancik escort aybasti escort aydincik escort aydincik escort ayranci escort azdavay escort aziziye escort babadag escort babaeski escort bafra escort baglar escort bahce escort bahcesaray escort bahsili escort baklan escort baliseyh escort banaz escort basiskele escort baskale escort baskil escort basyayla escort battalgazi escort bayat escort bayramoren escort bekilli escort belen escort besikduzu escort beyagac escort beylikova escort beysehir escort beytussebap escort birecik escort bismil escort bitez escort bogazkale escort bogazliyan escort bor escort bosna escort boyabat escort bozkir escort bozkurt escort bozkurt escort bozova escort boztepe escort bozyazi escort bulancak escort bulanik escort buldan escort bunyan escort caglayancerit escort cal escort caldiran escort camardi escort camas escort cameli escort camlihemsin escort camliyayla escort camoluk escort canakci escort candir escort canik escort cardak escort carsamba escort carsibasi escort cat escort catak escort catalpinar escort catalzeytin escort cavdarhisar escort caybasi escort caycuma escort cayeli escort cayiralan escort cayirli escort cayirova escort caykara escort cekerek escort celebi escort celtik escort cemisgezek escort cerkezkoy escort cermik escort ceylanpinar escort cicekdagi escort cide escort cifteler escort ciftlik escort ciftlikkoy escort cihanbeyli escort cilimli escort civril escort cizre escort cinar escort cinarcik escort corlu escort cukurca escort cumayeri escort cumra escort cungus escort daday escort dalaman escort darende escort dargecit escort darica escort datca escort defne escort delice escort demirci escort demirkoy escort derbent escort derebucak escort derecik escort dereli escort derepazari escort derik escort derince escort derinkuyu escort dernekpazari escort develi escort devrek escort devrekani escort dicle escort digor escort dilovasi escort divrigi escort doganhisar escort dogankent escort dogansehir escort doganyol escort doganyurt escort domanic escort dortyol escort dulkadiroglu escort dumlupinar escort duragan escort duzici escort duzkoy escort edremit escort eflani escort egirdir escort ekinozu escort elbeyli escort elbistan escort emet escort emirgazi escort erbaa escort ercis escort erdemli escort eregli escort eregli escort erenler escort erfelek escort ergene escort ermenek escort erzin escort eskipazar escort esme escort espiye escort eynesil escort eyyubiye escort fatsa escort ferizli escort fethiye escort findikli escort gediz escort gelendost escort gemerek escort gerze escort gevas escort geyve escort gokcebey escort goksun escort golcuk escort golkoy escort golmarmara escort gordes escort guclukonak escort gulnar escort gulsehir escort gulyali escort guneysinir escort guneysu escort gurgentepe escort gurpinar escort gurun escort hacibektas escort hadim escort hafik escort halfeti escort haliliye escort halkapinar escort hanonu escort harran escort hasanbeyli escort haskoy escort hassa escort havza escort hayrabolu escort hayrat escort hekimhan escort hemsin escort hendek escort hilvan escort hisarcik escort hozat escort huyuk escort icel escort icmeler escort idil escort ihsangazi escort ikizce escort ikizdere escort ilgin escort ilkadim escort imranli escort incesu escort inebolu escort ipekyolu escort iyidere escort kabaduz escort kabatas escort kadirli escort kadinhani escort kadisehri escort kagizman escort kale escort kalkandere escort kaman escort kangal escort kapakli escort karahalli escort karakecili escort karakopru escort karapinar escort karapurcek escort karasu escort karatay escort kavak escort kavaklidere escort kaynarca escort keskin escort kilimli escort kirkagac escort kiziltepe escort kocaali escort koprubasi escort koprubasi escort korgan escort korkut escort koycegiz escort koyulhisar escort kozakli escort kozlu escort kula escort kuluncak escort kumru escort ladik escort macka escort malazgirt escort malkara escort marmaraereglisi escort mazgirt escort mentese escort mesudiye escort milas escort muradiye escort muratli escort nazimiye escort niksar escort of escort ortahisar escort ovacik escort ozalp escort pamukova escort pazar escort pertek escort pulumur escort resadiye escort salipazari escort salpazari escort saray escort saray escort sarayduzu escort saraykent escort sarikaya escort sarkisla escort sarkoy escort sefaatli escort silopi escort sivasli escort sorgun escort suleymanpasa escort surmene escort termal escort tonya escort tusba escort ulubey escort yenifakili escort yerkoy escort buca escort karabaglar escort bornova escort karsiyaka escort

anal escortadana escortadiyaman escortafyon escortagri escortaksaray escortamasya escortankara escortantalya escortardahan escortartvin escortaydin escortbalikesir escortbartin escortbatman escortbayburt escortbilecik escortbingol escortbitlis escortbolu escortburdur escortbursa escortcanakkale escortcankiri escortcorum escortdenizli escortdiyarbakir escortduzce escortedirne escortelazig escorterzincan escorterzurum escorteskisehir escortgaziantep escortgiresun escortgumushane escorthakkari escorthatay escortigdir escortisparta escortistanbul escortizmir escortkahramanmaras escortkarabuk escortkaraman escortkars escortkastamonu escortkayseri escortkibris escortkirikkale escortkirklareli escortkirsehir escortkilis escortkocaeli escortkonya escortkutahya escortmalatya escortmanisa escortmardin escortmersin escortmugla escortmus escortnevsehir escortnigde escortordu escortosmaniye escortrize escortsakarya escortsamsun escortsiirt escortsinop escortsivas escortsanliurfa escortsirnak escorttekirdag escorttokat escorttrabzon escorttunceli escortusak escortvan escortyalova escortyozgat escortzonguldak escort

ucuz escortadana escortadiyaman escortafyon escortagri escortaksaray escortamasya escortankara escortantalya escortardahan escortartvin escortaydin escortbalikesir escortbartin escortbatman escortbayburt escortbilecik escortbingol escortbitlis escortbolu escortburdur escortbursa escortcanakkale escortcankiri escortcorum escortdenizli escortdiyarbakir escortduzce escortedirne escortelazig escorterzincan escorterzurum escorteskisehir escortgaziantep escortgiresun escortgumushane escorthakkari escorthatay escortigdir escortisparta escortistanbul escortizmir escortkahramanmaras escortkarabuk escortkaraman escortkars escortkastamonu escortkayseri escortkibris escortkirikkale escortkirklareli escortkirsehir escortkilis escortkocaeli escortkonya escortkutahya escortmalatya escortmanisa escortmardin escortmersin escortmugla escortmus escortnevsehir escortnigde escortordu escortosmaniye escortrize escortsakarya escortsamsun escortsiirt escortsinop escortsivas escortsanliurfa escortsirnak escorttekirdag escorttokat escorttrabzon escorttunceli escortusak escortvan escortyalova escortyozgat escortzonguldak escort

trabzon escort

gebze escort

istanbul escort 2014年11月 – rix的笔记

mnesia数据库优化

我一直都很想使用mnesia数据库,但mnesia的数据库一直很头疼的就是内存的占用量,我到 现在还没有办法,另外一个担心就是效率,我不知道执行到底需要占用多长时间,正好,从 另外的一个mysql上有一个不大的测试数据,可以让我检查下。

先说明下数据结构,这个数据结构很简单,是一个短信的结构,变成erlang的语法如下:

-record(sms, {
          id,
          time,
          date,
          code,
          content,
          status,
          status2
         }).

mysql中这个数据总共是55272条,我想取出其中一天(比如2014-10-31)的内容,然后根据 总量,status,status2分组,并按照一天的每一个小时进行统计,最后出现下面的三组结果:

  1. 指定一天的每个小时中所发送的短信量
  2. 指定一天的每个小时中发送成功的短信量(status=1)
  3. 指定一天中每个小时中发送失败的短信量(status2=1)

需要注意的是,源数据中,status和status2并非在0,1之间,而是可能有其他状态。我选 定的这一天总共有2327的量。

mysql中的time是按照“YYYY-MM-DD hh-mm-ss”的格式存储的,因此,如果取某一天的话,需 要使用left函数,转换成erlang就是{datetime,{{YYYY,MM,DD},{hh,mm,ss}}}。

先说下测试的环境,16G内存,i8四核,其实这个条件无论对于mysql和mnesia都是完全完美 的。

我先作了一个用于输出的测试代码:

test() ->
    io:format("use z=~p~n", [timer:tc(?MODULE, test, [z])]),
    ok.

后续的其他方法可以通过test(a),test(b),test(c)….等等来输出

test(z) ->
    Test={date, {2014, 
                 10, 
                 30}},
    F = fun() ->
                All = qlc:e(qlc:q([D||D<-mnesia:table(sms),
                              D#sms.orderdate=:= Test])),
                [All, All, All]
        end,
    {atomic, [All_sms, Sms_Succ, Sp_Succ]} = mnesia:transaction(F),
    ok;

这个是最简单的一个,只输出某一天的量,不做过滤,使用qlc的方式,据说select要比qlc 更高效些,因此也做了各使用select的等同代码:

test(y) ->
    Test={date, {2014, 
                 10, 
                 30}},
    F = fun() ->
                A = #sms{orderdate=Test, _='_'},
                All = mnesia:select(sms, [{A, [], ['$_']}], read),
                [All, All, All]
        end,
    {atomic, [All_sms, Sms_Succ, Sp_Succ]} = mnesia:transaction(F),
    ok;

简单运行一下测试,select果然要比qlc高效些, qlc关键在于表现不稳定,在我的测试中, 在8ms和26ms之间晃荡,而select一般都在8~11ms之间,以10ms为多数。

接下来是真实的测试内容了,首先第一个方案是将选择出来的sms按照一定的顺序排列,然 后根据小时筛选统计:

test(a) ->
    Test={date, {2014, 
                 10, 
                 30}},

    F = fun() ->
                A = qlc:q([D||D<-mnesia:table(sms),
                              D#sms.orderdate=:= Test]),
                B = qlc:keysort(2, A, [{order, descending}]),
                Qc = qlc:cursor(B),
                All = qlc:next_answers(Qc, all_remaining),
                qlc:delete_cursor(Qc),
                All_succ = [D||D<-All,  D#sms.status=:=1],
                ALL_SP_succ = [D||D<-All,  D#sms.sp_status=:=1],
                F1 = fun(T1) ->
                             case T1 of
                                 [] ->
                                     [];
                                 [Head|Still] -> 
                                     order_sort_hour(Still, Head#sms.ordertime, [])
                             end
                     end,
  
                All_sms = F1(All),
                Sms_succ = F1(All_succ),
                Sp_List= F1(ALL_SP_succ),
                [All_sms, Sms_succ, Sp_List]
        end,
    {atomic, [All_sms, Sms_Succ, Sp_Succ]} = mnesia:transaction(F),
    ok.
order_sort_hour([], _, Result) ->
    lists:reverse(Result);
order_sort_hour([Order|All], {datetime, {{Y, M, D}, {_HH, _MM, _SS}}}, []=Result) ->
    Time2 = Order#sms.ordertime,
    {datetime, {{Y, M, D}, {HH2, _, _}}} = Time2,
    order_sort_hour(All, Time2, [[HH2, 1]|Result]);
order_sort_hour([Order|All], {datetime, {{Y, M, D}, {HH, _MM, _SS}}}= Time, [[HH, Num]|Rest]=Result) ->
    Time2 = Order#sms.ordertime,
    {datetime, {{Y, M, D}, {HH2, _, _}}} = Time2,
    case HH2 of
        HH ->
            order_sort_hour(All, Time, [[HH, Num+1]|Rest]);
        _ ->
            order_sort_hour(All, Time2, [[HH2, 1]|Result])
    end.

这种方式测试下来,平均竟然需要50ms左右!!

改进方法,我首先觉得这个这个让qlc将结果排序不靠谱,觉得会占用时间,乱许处理会比 较快些,于是,有了下面的改进:

test(b) ->
    Test={date, {2014, 
                 10, 
                 30}},

    F = fun() ->
                A = qlc:q([D||D<-mnesia:table(sms),
                              D#sms.orderdate=:= Test]),
                Qc = qlc:cursor(A),
                All = qlc:next_answers(Qc, all_remaining),
                qlc:delete_cursor(Qc),
                All_succ = [D||D<-All,  D#sms.status=:=1],
                ALL_SP_succ = [D||D<-All,  D#sms.sp_status=:=1],
                T = [{Num, 0} || Num<-lists:seq(0, 23)],
                All_sms = sort2(All, T),
                Sms_succ = sort2(All_succ, T),
                Sp_List= sort2(ALL_SP_succ, T),
                [All_sms, Sms_succ, Sp_List]
        end,
    {atomic, [All_sms, Sms_Succ, Sp_Succ]} = mnesia:transaction(F),
    ok.

sort2([], Result) ->
    [[H, N]||{H,N}<-Result];
sort2([Order|All], Result) ->
    Time2 = Order#sms.ordertime,
    {datetime, {{Y, M, D}, {HH, _, _}}} = Time2,
    HH2 = HH+1,
    R2 = lists:nth(HH2, Result),
    {HH, Num} = R2,
    sort2(All, lists:keyreplace(HH, 1, Result, {HH, Num+1})).

测试一下,时间大幅缩短到20ms左右,果然排序比较坑阿,当然,时间的另外一个排序的排 进也会对时间有很大的影响。

于是,有了第三个版本:

test(c) ->
    Test={date, {2014, 
                 10, 
                 30}},
    F = fun() ->
                All = qlc:e(qlc:q([D||D<-mnesia:table(sms),
                              D#sms.orderdate=:= Test])),
                All_succ = [D||D<-All,  D#sms.status=:=1],
                ALL_SP_succ = [D||D<-All,  D#sms.sp_status=:=1],
                T = [{Num, 0} || Num<-lists:seq(0, 23)],
                All_sms = sort2(All, T),
                Sms_succ = sort2(All_succ, T),
                Sp_List= sort2(ALL_SP_succ, T),
                [All_sms, Sms_succ, Sp_List]
        end,
    {atomic, [All_sms, Sms_Succ, Sp_Succ]} = mnesia:transaction(F),
    ok;

乍一看,c的版本和b的版本没太大区别,但c的版本普遍比b的版本要快平均7ms,也就是 13ms左右,看来,使用数据库的游标还是有代价的。

最起始的时候,我们说select要比qlc高效,于是,就有了d的版本:

test(d) ->
    Test={date, {2014, 
                 10, 
                 30}},
    F = fun() ->
                A = #sms{orderdate=Test, _='_'},
                All = mnesia:select(sms, [{A, [], ['$_']}]),
                All_succ = [D||D<-All,  D#sms.status=:=1],
                ALL_SP_succ = [D||D<-All,  D#sms.sp_status=:=1],
                T = [{Num, 0} || Num<-lists:seq(0, 23)],
                All_sms = sort2(All, T),
                Sms_succ = sort2(All_succ, T),
                Sp_List= sort2(ALL_SP_succ, T),
                [All_sms, Sms_succ, Sp_List]
        end,
    {atomic, [All_sms, Sms_Succ, Sp_Succ]} = mnesia:transaction(F),
    ok;

但结果,有些出乎我的意料,d的版本在大部分时间都比c的版本要长,虽然不多,就不到 1ms,但终究是长了,总之,没有意料中的快。但是否是最快的,这个就不敢保证了,反正 拼着不折腾不舒服斯基的小强精神,我做了下面的版本:

test(e) ->
    Test={date, {2014, 
                 10, 
                 30}},
    F = fun() ->
                All = qlc:e(qlc:q([D||D<-mnesia:table(sms),
                              D#sms.orderdate=:= Test])),
                All_succ = [D||D<-All,  D#sms.status=:=1],
                ALL_SP_succ = [D||D<-All,  D#sms.sp_status=:=1],
                T = [{Num, 0} || Num<-lists:seq(0, 23)],
                sort3(All, T, T, T)
        end,
    {atomic, [All_sms, Sms_Succ, Sp_Succ]} = mnesia:transaction(F),
    ok.
sort3([], Result, Result2, Result3) ->
    [[[H, N]||{H,N}<-Result], [[H, N]||{H,N}<-Result2], [[H, N]||{H,N}<-Result3]];
sort3([Order|All], Result, Result2, Result3) ->
    Time2 = Order#sms.ordertime,
    {datetime, {{Y, M, D}, {HH, _, _}}} = Time2,
    HH2 = HH+1,
    R2 = lists:nth(HH2, Result),
    {HH, Num} = R2,
    S1 = case Order#sms.status of
             1 ->
                 1;
             _ ->
                 0
         end,
    S2 = case Order#sms.sp_status of
             1 ->
                 1;
             _ ->
                 0
         end,
    sort3(All, lists:keyreplace(HH, 1, Result, {HH, Num+1}), lists:keyreplace(HH, 1, Result2, {HH, Num+S1}), lists:keyreplace(HH, 1, Result3, {HH, Num+S2})).

e的版本将三个的整理放到一起进行,直接说结果吧,比d,c要慢,比b要快,因此,目前最 快就是c和d了,但c和d使用的记录都是整条记录,那么如果记录减少会不会影响呢。于是我 再次改进了下:

test(f) ->
    Test={date, {2014, 
                 10, 
                 30}},
    F = fun() ->
                A = #sms{orderdate=Test, ordertime='$1', status='$2', sp_status='$3', _='_'},
                All = mnesia:select(sms, [{A, [], ['$$']}], read),
                All_succ = [[{D, S1, S2}]||[{D, S1, S2}]<-All, S1=:=1],
                ALL_SP_succ = [[{D, S1, S2}]||[{D, S1, S2}]<-All, S2=:=1],
                T = [{Num, 0} || Num<-lists:seq(0, 23)],
                All_sms = sort4(All, T),
                Sms_succ = sort4(All_succ, T),
                Sp_List= sort4(ALL_SP_succ, T),
                [All_sms, Sms_succ, Sp_List]
        end,
    {atomic, [All_sms, Sms_Succ, Sp_Succ]} = mnesia:transaction(F),
    ok.
sort4([], Result) ->
    [[H, N]||{H,N}<-Result];
sort4([[Time2, _, _]|All], Result) ->
    {datetime, {{Y, M, D}, {HH, _, _}}} = Time2,
    HH2 = HH+1,
    R2 = lists:nth(HH2, Result),
    {HH, Num} = R2,
    sort4(All, lists:keyreplace(HH, 1, Result, {HH, Num+1})).

然后,奇迹来了,这个操作在大部分时候,仅比y的操作慢不到1ms,也就是说,大部分时候, 3个操作的过滤使用了不到1ms的时间。

是否还有更快的操作,应该还有吧,但我已经没有太大兴趣测试了。