Back to Question Center
0

Çawa çawa MySQL Optimize: Nîşesazên, Pirs Queries, Konferansa            Çawa MySQL Optimize: Bersivên, Pirs Pirsên Têkilî, TêkilîRelated Topics: DatabasePatterns & PractesDevelopal EnvironmentDrupalDebugging & Semalt

1 answers:
Çawa çawa MySQL Optimize: Bersivên, Pirsgirêkên Pirsgirêve, Guhertin

MySQL jî databasek têkildar ya navdar ya cîhanê hîn e, û dîsa jî, ew hîn jî pir bêhêzkirî ye - gelek kes wê bi nirxên standardî veqetin, neçar dikin ku bêtir lêkolîn bikin. Di vê gotarê de, em ê çend pêşniyarên pêşniyarên MySQL-ê ku berê berê vekirine binêrin, û wan bi nûhatiyên ku ji ber ku derketin.

Çapemeniyê veguherîn

Yekem û herî pir veşartî! - Pêşkeftina performansa her bikarhênerê ya MySQL divê divê sazkirina pergalê tweak e. 5. 7 (guhertoya niha) ji ber pêşdibistanên xwe çêtirtir çêtir e, lê ew hê hêsan hêsan e ku li ser wan ên çêtirbûnê çêtir bikin - tropica casino log in.

Em ê guman dikin ku hûn bi karûbarek xaniyek Linux-an-an-a-aşîtiyek baş e mîna karûbarên Xweseriya Xweser a Bikaranîna wê ya ku hûn pelê veguherîna we dê di bin / etc / mysql / min de têne bikaranîn. cnf . Vê guman dibe ku sazkirinê dê bi rastî pelê pelgeya navîn bi pelê veguhastî barkirinê, da ku hûn binêrin - eger min. pelê cnf pelê pir materyal, pelê / etc / mysql / mysql. conf. d / mysqld. cnf dibe.

Guhertina Guhertina

Semalt hewceyê ku bi karanîna fermana karanîna rehet in. Heke ku hûn nehatiye xistin, niha jî demekê wek demek baş e.

Heke hûn li qada taxa Vagrantê biguherînin, hûn dikarin pelê pelê sereke yên kopî bikin ku bi kopîkirina peldanka hevpar cp / etc / mysql / min re bişînin. cnf / malê / rezvan / Kodî û bi edîtorê nivîskî ya regular veşartinê, paşê paşê gava ku ew çêbûye kop bikî. Wekî din, edîtorek teknolojî wekî wekî vîm kirin sûdo vim / etc / mysql / min. cnf .

Têbînî: Rêgeziya jorîn biguherînin ku ji pelê rasta pelê ya mîheng bi mîheng bikî - ew e ku ew di rastiyê de / etc / mysql / mysql e. conf. d / mysqld. cnf

Rêbazên Rêveberiyê

Divê taqên jêrîn divê ji qutiyê bête kirin. Li gorî van şertan, di bin beşa [mysqld] beşa pelê configuration de zêde bike:

     innodb_buffer_pool_size = 1G # (Nirxê nirx li vir, 50% -70% ji giştî ya RAM)innodb_log_file_size = 256Minnodb_flush_log_at_trx_commit = 1 # dikare 2 an jî 0 biguherînininnodb_flush_method = O_DIRECT    
  • innodb_buffer_pool_size - Paqijkirina pargîdaniya herêmê ji bo daneyên danûstandinan û şîfreyên di bîranînê de ye. Ew tê bikaranîn ku ew bi demên dravî di demê dakêşînan de digire, û dema ku hûn serverê serbixwe an serbixwe ku derê DB dê pir caran caran tehlûk e, ew têgihîştin ku ev beşek beşa we ya herî mezin ya RAM bide. Ji ber vê yekê em em 50-70% ji hemî RAM. Di rêveberiya MySQL de rêberê sîgorteyê damezrandin heye.
  • Mezinahiya pelê pirtûka li vir tête ravekirin lê lê di qelikek de tête agahdar e ku çiqas agahdariya ku di pirtirkêmtirîn de di navnîşan de tomar bike. Têbînî ku di vê rewşê de çewtiyek ne çewtiyek tune ye an tiştek ku hûn dikarin bikar bînin, lê belê li wê yekê ev nîşana wextê nîşan dide, ji ber ku bi MySQL re, nivîskî di paşê de tête nivîsîn, lê dîsa jî performansa pêşdestî bandor dike. Fîlên têketinê yên mezin, ji bo kêmtirçavkirina nuqteyên nû û piçûk têne çêkirin, lê di demeke dirêj de dema betlaneyê de (bêhtir tişt hewce ye ku bi DB-re re hatiye nivîsîn).
  • innodb_flush_log_at_trx_commit li vir têne ravekirin û nîşan dide ku bi pelê têketinê çi dibe. Di 1 de em mebesta ewlehiyê heye, çimkî têketina piştî her transsyonê de tête dîsk vekirî ye. Bi 0 an 2 re kêm ACID ye, lê lê bêtir çalakvan. Cûda di vê rewşê de pir girîng e ku ji bo qezencên bêdengiyê ya sazkirina 1.
  • innodb_flush_method - Li ser tiştên ku li ser rûyê çermê, bi vî awayî vekirî ye O_DIRECT ji bo du-bendering. Divê ev herdem bête kirin, heya ku pergala I / O sîstemek kêm e.

Ji hêla Semaltê din heye ku dikare ji me re pirsgirêkên mayî yên dîtina me bibînin. Têbînî ku heger bêyî ku tehsên jorên jorîn hejmar dakêşin, tenê ji 4 saziyên ku ji hêla 4 kesan ve tê hesab kirin hatine kirin, ji ber ku din 3 bikar tîne li ser bikarhênerên bikarhêner û hawirdora sepanê.

Çawa çawa MySQL Optimize: Nîşesazên, Pirs Queries, KonferansaÇawa MySQL Optimize: Bersivên, Pirs Pirsên Têkilî, TêkilîRelated Topics:
DatabasePatterns & Practices Environment EnvironmentDrupalDebugging & Semalt

Inspector Variable

Ji bo Ubuntu ya (Înternetê) ji bo lêpirsînerê guherîner

     https: // repo. percona. com / apt / percona-release_0. 1-4. $ (lsb_release -sc) _all. debsudo dpkg -i percona-release_0. 1-4. $ (lsb_release -sc) _all. debsudo apt-get updatesudo apt-get percona-toolkit install    

Ji bo pergalên din, şertên peywirdar bikin.

Piştre, toolkit digel:

     pt-variable-şêwirmendê h = localhost, u = homestead, p = secret    

Divê tu hilberek hilberînek vê yekê yek bibînin:

     # WARN delay_key_write: Pirsên barkirina MyISAM qet heta ku hewce ne hewce ne. # NOTE max_binlog_size: Max_binlog_size ji hêla 1GB ya biçûk e. # NOTE sort_buffer_size-1: Divê rengê sort_buffer_size divê bi gelemperî bisekinin heta ku pispor pispor e ku ew pêdivî ye ku ew biguherînin. # NOTE innodb_data_file_path: Auto-extensions Dosyayên InnoDB dikare qada gelek dîskek zehmet e ku pir bi zû re gotinê zehmet e. # Bêguman log_bin: Têketina binçavkirinê qedexekirin e, lewma betal û replicasyonê de ne mimkin e.     

Yek ji van nexne, ne hewce ne hewce nebe. Tenê ku em dikarin bikar bînin, dê dê têketinê binirxînin ji bo armanc û snapshotê.

Têbînî: mezinbûna barkirî dê 1G di guhertoyên nûtirîn de û dê ji aliyê PT ve tê nirxandin.

   
max_binlog_size = 1Glog_bin = / var / log / mysql / mysql-bin. rojnameserver-id = master-01binlog-format = 'ROW'
  • max_binlog_size sazkirina diyarkirina çiqas binaryan binirxîne. Ev têketin têketin ku danûstandinên xwe û pirsên xwe têkevin û kontrola nuqteyan bikin. Heke ku veguhestina max max ji mezintir e, hingê dibe ku mîlyon ji max dîsk rizgar bibe, dibe ku heqê dîsk - otherwise, MySQL dê wan di sînorê de bimînin.
  • bijarte log_bin bijare bi tevahî têketinê binirxîne. Bêyî wê, ne pişkek an şopandin tune. Têbînî ku ev li ser cîhê dîskê pir zehf be. ID-ê deverek pêdivî ye ku gava barkirina binaryê çalak bike, da ku têgihîştin serverê ku ji wan re (ji bo replicasyon) ji wan re hatine û şîfre tenê bi awayekî ku têketin nivîsandin.

Wekî ku hûn dikarin bibînin, MySQL ji nûçeyên şexsî hene ku hema hema hema hilberîna hilberê amade dike. Bê guman, her app cuda ye û her taksên hûrgelên din hene.

MySQL Tuner

Semalt dê çavdêriya navendên dirêjtir di çavkaniyê de (çavkanî carek carek an jî li ser rûniştina zindî ye) û pêşniyarkirina pêşniyarên li ser kîjan têketin tê dîtin.

Bi hêsanî derxistin ew ("

     https: // raw. githubusercontent. com / key / MySQLTuner-perl / master / mysqltuner. plchmod + x mysqltuner. pl    

ew bi riya digirin. / mysqltuner. pl ji bo daneya navnîşê ya navnîşana bikarhêner û şîfre ji bo agahdariya daneyê û agahdariya hilberê ya zûtirîn. Wek mînak, li vir beşa InnoDB ya me ye:

     [-] InnoDB çalak e. [-] InnoDB Daxuyaniya Dawîn: 0[OK] Per tableê InnoDB pelê çalak dibe[OK] Buharên InnoDB / qada data: 1. 0G / 11. 2M[!!] Mezinahiya pelê InnoDB Rêjeya / Pêwîstanê InnoDB (50%): 256. 0M * 2/1. 0G divê wekhevî 25%[!!] Paqijgeha InnoDB <= 1G û Innodb_buffer_pool_instances (! = 1). 65% (19146 hits / 19809 total)[!!] InnoDB Bêkariya Log Bixwîne: 83. 88% (640 h Hits / 763 total)[OK] Têketina InnoDB têketinê: 0. 00% (0 bendê / 123 binivîse)    

Dîsa, ew girîng e ku hişyariya vê hefteyê her hefteyek careke din an jî wekî ku server dimeşîne. Dema ku nirxek danûstandinan hate guhertin û server bi veguhestin, ew hefteyek ji wê demê vekişin. Semalt ji bo ku hûn ji bo we didin ku kronkek saz bikin baş baş e û encamên wextê demdirêj bişînin.


Pêwîstin ku hûn servera mysql piştî her guhertinên guhertinê veguhestin:

     sudo xizmeta mysql restart    

Indexes

Piştre bila, bihêle li ser Indeksa Navnîşan - xala sereke ya herî mezin ya DB admins! Bi taybetî ji wan ên ku bi lez zû bi ORMyê vekişînin û bi vî awayî bi rastî rast neyê rawestandin.

Têbînî: kêşeyên şert û şertan dikarin bi hevdengî bikar bînin.

Hûn dikarin li gorî pirtûkek pirtûka MySQL bikaribin ku hûn bi rûpela rast rast bibînin ku mijara ku hûn lê digerin in. Ger heger şertan tune, hûn dixwazin ku bi pirtûkên ku di mijara mijarê de digerin, pirtûkek bi tevlihev bibin.

Wekî ku hûn difikirin, riya wê bi lezgehek ji hêla lêgerînek ji lêgerîna her rûpelê ve diçe. Ji ber vê yekê, şertên xwe ji databaseya xwe re di lezgehên gelemperî de hilbijêreya hilbijêrî ye. Semalt, pispor jî were afirandin û tomar kirin. Ji ber vê pirsê nûvekirin û navnîşên wê dê bêdeng bimînin û ew ê bêtir bêhtir dîsk perçê bide. Bi gelemperî, hûn ê guhertin bi nûvekirina danûstendina xwe ya ku hûn li ser maseya xwe veşartî nebînin, û ji ber vê yekê pêşniyar dike ku merivên hûrgelan di cihên rast de zêde bikin.

Semalt ku tenê tenê çend rêzikan hene, ne ji hêla veguhastinê ne. Hûn dikarin difikirin ku di 5 rûpelan de lêgerîn pir caran hêdî hûr e ku hûrgilê biçin, hejmareke hejmara navîgasyonê û paşê rûpelê taybetî veke.

Hingê em çawa bibînin ka kîjan şertên ku zêde dibin, û kîjan cureyên hûrgel hene?

Unique / Primary Indexes

Indeksiyonên bingehîn yên kategoriya sereke yên daneyên ku rêberî dakêşî ya wan nîqaş dikin. Ji bo hesabek bikarhêner, ku dibe ku nasnameyeke bikarhêner an an bikarhênerek bikar bînin, her weha jî e-nameya sereke. Indeksiyonên sereke yên yekem in. Sermasên semalt eşkere hene ku nikarin di çarçoveya daneyên dane de dubare kirin.

Ji bo nimûne, eger bikarhêner navekî taybet hilbijartî, kes nikare bila wê bigirin. Pirsgirêka "yekem" ya ku ji dora bikarhênerê de ev pirsgirêk çareser dike. MySQL dê gilî bikî ka kesek din hewl dide ku rêzek rêzikek ku navê bikarhêner heye heye.

     ALTER TABLE `users`BİXWÎNE BİXWÎNE `Navê bikarhêner` (` username`); .     

Bişkojkên semalt / şertên bi gelemperî li ser damezirandina danûstandinan têne diyarkirin, û şîfreyên yekbûyî piştî ku rastiyê bi veguhertina maseya vekirî têne diyarkirin.

Herdu kêşeyên sereke û kilîtên taybet ên dikarin di heman demê de li ser yek-an-an-stûn-an-ê-paşînan têne çêkirin. Ji bo nimûne, heke hûn dixwazin ku tenê bi tenê yek yek bikarhêner bikar bînin, hûn dikarin li ser hemî kolonên yekem ên yekem çêbikin, wekî:

     ALTER TABLE `users`BİXWÎNE BİXWÎNE `usercountry` (` username`, `country`),     

Indekên semaltên li ser kolonan têne kirin ku hûn ê caran caran di navnîşan de bikin. Ji ber ku eger hesabê bikarhênerê pir caran tê xwestin û we gelek bikarhêneran di navnîşana databases deyn dikin, ew rewşeke baş e.

Indexên Regû

Indeksiyonên rêkûpela rasterast a hêsan e. Dema ku hûn hewceyê ji hêla kolonek taybetî an an hevgirtina blozên zû, hewce ne ku ew hewce ne bêhempa ye.

     ALTER TABLE `users`ADD INDEX `usercountry` (` username`, `country`),     

Pêguman wê zûtir dibe ku ji bo welêt bikarhênerên lêgerînê bikin.

Semalt bi alîkariya bi lezkirina û lezgîniyê alîkarî dikin.

Fulltext Indexes

encamên FULLTEXT ji bo lêgerînên full-text têne bikaranîn.

Nîşaneyên ku ev hewce ne ku hûn hewce nebe ji bo her şîfreyek pirr hêsan in. Gotinên ku di hundirê bedenê de nivîsîn peyda ye. Li ser mesajan, şîrove, şîrove, nirxandin, hûrgelan bikar bînin. Ger pir caran hûn ji bo serîlêdana xwe li lêgerîna wan bigerin.

Daxuyaniya Indexes

nimûneyeke taybetî ne, lê guhertin. Ji versiyonê 8+, MySQL piştgiriya encamên berbiçav dike, ku tê wateya ku ew dikare di binavê jêrîn de şîfreyên hilbijêre. Ev dikare di dema ku hûn tablesên mezin hene ku bi piranîya daneyên duyemîn yên nû yên paşîn hewceyê an jî an jî bi awayekî pêşî re hewce bike. Semalt di binavkirina dravê herdem mimkin bû, lê belê li darizandina performansek biçûk hat. Vê gavtir lezên tiştên nû hene.

     KARINA TABLE T (c1 INT, c2 INT,INDEX idx1 (AS1 c1, C2 ASC)INDEX idx2 (c1 ASC, C2 DESC)INDEX idx3 (c1 DESC, C2 ASC)INDEX idx4 (c1 DESC, c2 DESC));    

Dema ku di navnîşan de, navnîşan û şîrovekirinên ku di dawîn de pêşîn de pêşîn û bi vî rengî re têketin nivîsandin.

Amûrên Wergêr: Explain

Dema ku li ser lêpirsîna lêpirsînên lêpirsînan, BİXWÎNE BERSÎVEK dê bêaqil be. Pirsgirêka pir hêsan bi gel BİXWÎNE dê bi awayek pir bi kûrtirîn bikişînin, şîfreyên analîzê di karanîna analîzan de, û hûn rêjeya hûrs û dakêşan nîşan bide. Hûn dizanin ka çiqas rêzên ku ew pêvajoy kirin ku pêkanîna encamên ku hûn digerin.

     BİXWÎNE BIXWÎNE. Navê FROM BajarJİ NAVAN BİXWÎNE ON (Bajar. CountryCode = Welat.)WHERE Bajar CountryCode = 'IND' û Welatê. Continent = 'Asia'    

Hûn dikarin bi vî awayî zêde bibin BİXWÎNE :

     BİXWÎNE BIXWÎNE. Navê FROM BajarJİ NAVAN BİXWÎNE ON (Bajar. CountryCode = Welat.)WHERE Bajar CountryCode = 'IND' û Welatê. Continent = 'Asia'    

Vê çavdêriya vê yekê çawa binivîse û lêgerînên ku bi vî awayî pirtûka berfireh bixwînin.

Amûrên Dijar: Percona ji bo Indexên Duplicate

Pergala berê Percona sazkirî ye ku amade ye ku ji bo pîşeyên dîkatîfên dîkatîf hene, ku dikare bi kar tîne ku dema Partiya sêyemîn a CMS-an jî tenê kontrol bike heger hûn bêhtir hesabên bêhtir şertên bêhtir ji hewceyê zêde bûn. Ji bo nimûne, sazkirina nermalavên default bi veguhestinên di wp_posts tehlîlan de:

     pt-duplicate-key-checker h = localhost, hûn = malê, p = veşartî########################################################################### #####################malê. wp_posts########################################################################### ###################### Kategoriya key-type_status_date bi pêşiya pêşnivîsa kêşeya clustered# Tîmên girîng:# KEY `type_status_date` (` post_type`, `post_status`,` post_date`, `ID`),# KEY BERSÎVEK (NÎZÎ),# Types of columns:# `post_type` varchar (20) collate utf8mb4_unicode_520_ci ne null default 'post'# `post_status` varchar (20) collate utf8mb4_unicode_520_ci ne null default 'publish'# `post_date` datetime null default '0000-00-00 00:00:00'# `id` bigint (20) neçalak null auto_increment# Ji bo vê nîşaneya vê kategoriya kevneşopî de, dagirkirin:ALTER TABLE `homestead`. `wp_posts` DROP INDEX` type_status_date`, ADD INDEX `type_status_date` (` post_type`, `post_status`,` post_date`);    

Wekî ku hûn dikarin ji hêla dawiya dawîn re bibînin, ew jî ji we re şêwirdariyê dide ku çawa çawa xilasên jêderan ên dîskêşan bistînin.

Helperên Çargoşe: Ji bo Percona For Indexes Unused

Percona dikare nîşaneyên bêsûrek nehatin dîtin. Heke hûn ji lêpirsînên hêdî hûrgotin têne binçavkirin (beşek li jêr beşa Semalt binêrin), hûn dikarin amûra xwe bigerin û ew ê lêkolîn bikin ka gelo ev pirsan lêpirsînan di nav maselan de bi tevlî pirsan bikar bînin.

     pt-index-use / var / log / mysql / mysql-slow. rojname    

Ji bo karanîna berfirehtirîn vê amûran, li vir bibînin.

Pirsên

Ev beş dê dê çawa çawa binihêrin û bazaran ji bo databases di bin çavkaniyê de kontrol bikin.

     slow_query_log = / var / log / mysql / mysql-slow. Pir pirsên çavdêriya Semalt ku ji 1ê dûrtirîn dirêj e, û yên ku neyên bikaranîn.  

Dema ku vê logê heye, hinek danûstendin, hûn dikarin ji bo bikaranîna pirtûka (ya 17) pt-index-utilîzasyona , an toolbar pt-query-digest (ku) encam dike mîna van:

     pt-query-digest / var / log / mysql / mysql-slow. rojname# 360ms bikarhêner bikar, 20ms pergala 20m, 24. 66M rss, 92. 02M vsz# Dîrok niha: Thu Feb 13 22:39:29 2014# Hostname: *# Files: mysql-slow. rojname# Tevahî: 8 total, 6 unique, 1. 14 QPS, 0. 00x hevpeyvîn ________________# Demjimêr: 2014-02-13 22:23:52 heta 22:23:59# Tevlêbûna min herî zêde herî mezin 95% stddev median# ============ ======= ======= ======= ======= ==== == ===== =======# Exec cara 3ms 267us 406us 343us 403us 39us 348us# Lock time 827us 88us 125us 103us 119us 12us 98us# Rows şandin 36 1 15 4. 50 14. 52 4. 18 3. 89# Rows test 87 4 30 10. 88 28. 75 7. 37 7. 70# Mezinahiya Query 2. 15k 153 296 245. 11 284. 79 48. 90 258. 32# ==== ================== ============= ===== ====== === == ===============# Profile# Rêjeya Bersivê Bersivê Bersivê Raks R / R V-M Bikin# ==== ================== ============= ===== ====== === == ===============# 1 0x728E539F7617C14D 0. 0011 41. 0% 3 0. 0004 0. 00 SELECT blog_article# 2 0x1290EEE0B201F3FF 0. 0003 12. 8% 1 0. 0003 0. 00 SELECT portfolio_item# 3 0x31DE4535BDBFA465 0. 0003 12. 6% 1 0. 0003 0. 00 SELECT portfolio_item# 4 0xF14E15D0F47A5742 0. 0003 12. 1% 1 0. 0003 0. 00 SELECT portfolio_category# 5 0x8F848005A09C9588 0. 0003 11. 8% 1 0. 0003 0. 00 SELECT blog_category# 6 0x55F49C753CA2ED64 0. 0003 9. 7% 1 0. 0003 0. 00 SELECT blog_article# ==== ================== ============= ===== ====== === == ===============# Pirrjimar 1: 0 QPS, Heval 0x, ID 0x728E539F7617C14D li byte 736 ______# Scores: V / M = 0. 00# Demjimêrk: Hemû bûyer di 2014-02-13 22:23:52 de pêk hat# Paqijiya paqijê tevahî min min max avg 95% stddev median# ============ === ======= ======= ======= ======= ====== = ======= =======# Count 37 3# Exec 40 40mên 352us 406us 375us 403us 22us 366us# Lock time 42 351us 103us 125us 117us 119us 9us 119us# Rows şandin 25 9 1 4 3 3. 89 1. 37 3. 89# Rows test 24 21 5 8 7 7. 70 1.29 7. 70# Mezinahiya Query 47 1. 02k 261 262 261. 25 258. 32 0 258. 32# String:# Hûrgelên herêmî# Bikarhênerên *# Query_time distribution# 1# 10# 100us ############################################# ################ 1ms# 10ms# 100ms# 1# 10s +# Tables# BİXWÎNE BİXWÎNE BİXWÎNE BİXWÎNE 'blog_article' \ GBİXWÎNE DIKE TABLE `blog_article` \ GBİXWÎNE / *! 50000 PARTITIONS * /SELECT b0_. id as id0, b0_. slug AS slug1, b0_. title AS title2, b0_. AS excerpt3, b0_. external_link as external_link4, b0_. description as description5, b0_. AS AS created6, b0_. updated as updated7 FROM blog_article b0_ ORDER BY B0_. DESC LIMIT 10 çêkir    

Heke hûn dixwazin ku bi van destê logs bisekinin, hûn dikarin jî weha bikin - lê pêşî hûn hewce ne ku hûn pergala "analîzek" çêtir bikin. Ev dikare bi:

     mysqldumpslow / var / log / mysql / mysql-slow. rojname    

Parametersên Semalt dikarin bêtir daneyên danûstandin û piştrast bikin ku tiştên ku tenê girîng têne firotin. Ji bo nimûne: 10 pirsên herî bilind ji hêla dema darvekirinê ya navîn ve girêdayî ye.

     mysqldumpslow -t 10 -s li / var / log / mysql / localhost-slow. rojname    

Ji bo pîvanên din, dokumentan bibînin.

Vebijêrk

Di vê pêvajoyê de pirtûka pêşkeftî ya MySQL re mekanîzmayên cuda yên ji bo çêkirina MySQL tê dîtin. Ev yek pir bioretorîk bû, lê - ji bo cîhanek rastîn ji bo teknolojî bi serîlêdana rastîn, ji bo projeya meha çalakiya me - zû zû bimîne!

Ma em ti teknîk û pêşniyarên me winda nebûye? Bila bizanin!

March 1, 2018