[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:database\u002Fpg-operations":4,"config":213},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":115,"samples":129},"database","Veritabanı","","pg-operations","Pg Operations","tr",75,2475,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,76,79,82,85,88,91,94,97,100,103,106,109,112],{"key":19,"name":20,"count":11},"backup-recovery","Backup Recovery",{"key":22,"name":23,"count":11},"data-modeling","Data Modeling",{"key":25,"name":26,"count":11},"indexing","Indexing",{"key":28,"name":29,"count":11},"mongodb-aggregation","Mongodb Aggregation",{"key":31,"name":32,"count":11},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":34,"name":35,"count":11},"mongodb-operations","Mongodb Operations",{"key":37,"name":38,"count":11},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":40,"name":41,"count":11},"mongodb-schema-modeling","Mongodb Schema Modeling",{"key":43,"name":44,"count":11},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":46,"name":47,"count":11},"mysql-indexes","Mysql Indexes",{"key":49,"name":50,"count":11},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":52,"name":53,"count":11},"mysql-operations","Mysql Operations",{"key":55,"name":56,"count":11},"mysql-query-optimization","Mysql Query Optimization",{"key":58,"name":59,"count":11},"mysql-replication-scaling","Mysql Replication Scaling",{"key":61,"name":62,"count":11},"mysql-types-constraints","Mysql Types Constraints",{"key":64,"name":65,"count":11},"nosql-models","Nosql Models",{"key":67,"name":68,"count":11},"performance-tuning","Performance Tuning",{"key":70,"name":71,"count":11},"pg-indexes","Pg Indexes",{"key":73,"name":74,"count":11},"pg-mvcc-vacuum","Pg Mvcc Vacuum",{"key":8,"name":9,"count":11},{"key":77,"name":78,"count":11},"pg-query-planning","Pg Query Planning",{"key":80,"name":81,"count":11},"pg-transactions-locking","Pg Transactions Locking",{"key":83,"name":84,"count":11},"pg-types-constraints","Pg Types Constraints",{"key":86,"name":87,"count":11},"query-optimization","Query Optimization",{"key":89,"name":90,"count":11},"redis-cluster-sharding","Redis Cluster Sharding",{"key":92,"name":93,"count":11},"redis-data-structures","Redis Data Structures",{"key":95,"name":96,"count":11},"redis-expiration-eviction","Redis Expiration Eviction",{"key":98,"name":99,"count":11},"redis-persistence","Redis Persistence",{"key":101,"name":102,"count":11},"redis-replication-sentinel","Redis Replication Sentinel",{"key":104,"name":105,"count":11},"redis-transactions-scripting","Redis Transactions Scripting",{"key":107,"name":108,"count":11},"replication-scaling","Replication Scaling",{"key":110,"name":111,"count":11},"security-access","Security Access",{"key":113,"name":114,"count":11},"transactions-isolation","Transactions Isolation",[116,120,123,126],{"key":117,"name":118,"count":119},"mongodb","MongoDB",450,{"key":121,"name":122,"count":119},"mysql","MySQL",{"key":124,"name":125,"count":119},"postgresql","PostgreSQL",{"key":127,"name":128,"count":119},"redis","Redis",[130,148,161,174,187,200],{"id":131,"topic":9,"difficulty":132,"body":133,"options":134,"correct_key":136,"explanation":147},"019f5d67-ff95-78cf-830e-c34479807dfe",1,"psql içinde `\\dt` tabloları listeler, `\\d orders` bir tablonun kolonlarını ve index'lerini açıklar. Bu iki komut neden bir Go uygulamasının, tel üzerinden PostgreSQL'e gönderdiği SQL query string'i içinde kullanılamaz?",[135,138,141,144],{"key":136,"text":137},"a","Çünkü `\\dt`\u002F`\\d` yalnızca psql meta-komutlarıdır, client tarafında genişletilir, sunucunun ayrıştırdığı SQL değildir",{"key":139,"text":140},"b","Çünkü sunucu SQL'i yalnızca postgres superuser hesabından kabul eder, uygulama rolünden asla",{"key":142,"text":143},"c","Çünkü `\\dt` ve `\\d` superuser oturumu gerektirir ve uygulama rolleri böyle bir oturum açamaz",{"key":145,"text":146},"d","Çünkü bu komutlar yalnızca PostgreSQL 18'de vardır ve pgx gibi client library'lerde kullanılamaz","Ters eğik çizgiyle başlayan komutlar psql'e özgü meta-komutlardır; sunucuya bir şey gönderilmeden ÖNCE psql client'ının kendisi tarafından yorumlanıp genişletilir — sunucunun SQL parser'ının `\\dt` veya `\\d` diye bir kavramı yoktur. pgx gibi bir application driver yalnızca SQL metni gönderir, bu yüzden catalog'u doğrudan sorgulamalıdır (ör. information_schema veya pg_catalog).",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":139,"explanation":160},"019f5d67-ff96-70f7-9a22-61863f4bd04a","psql içinde `\\l` çalıştırmak `Name`, `Owner`, `Encoding` gibi kolonları olan bir tablo basar. Bu meta-komut aslında neyi listeler?",[152,154,156,158],{"key":136,"text":153},"O anda bağlı olunan veritabanı içindeki tabloları",{"key":139,"text":155},"Bağlı olunan PostgreSQL sunucusunda\u002Fcluster'da var olan veritabanlarını",{"key":142,"text":157},"Bağlı olunan veritabanında o anda kurulu olan extension'ları",{"key":145,"text":159},"Sunucuya o anda bağlı açık client bağlantılarını","`\\l` (list), o anda bağlı olunan cluster'daki her veritabanını, owner\u002Fencoding\u002Ferişim yetkisiyle birlikte sunucudan sorgular — bir veritabanı içindeki tablolarla (`\\dt`), kurulu extension'larla (`\\dx`) veya aktif bağlantılarla (`pg_stat_activity`) ilgisi yoktur.",{"id":162,"topic":9,"difficulty":132,"body":163,"options":164,"correct_key":142,"explanation":173},"019f5d67-ff96-7871-9dbb-f4205e0a1ef9","psql'de `\\du`, `Role name` ve `Attributes` kolonlarına sahip bir `List of roles` tablosu basar (ör. `Superuser`, `Create role`). Bu komut ne gösterir?",[165,167,169,171],{"key":136,"text":166},"O anda aktif TCP bağlantısıyla veritabanına giriş yapmış kullanıcıları",{"key":139,"text":168},"Mevcut kullanıcının erişim yetkisi verilmiş olduğu tabloları",{"key":142,"text":170},"Sunucuda tanımlı rolleri ve her birinin taşıdığı yetki\u002Fattribute'ları",{"key":145,"text":172},"Mevcut veritabanında var olan şemaları ve owner'larını","`\\du`, cluster'daki her rolü, attribute'larıyla birlikte listeler (superuser mi, rol oluşturabiliyor mu, veritabanı oluşturabiliyor mu, login yetkisi var mı, vb). Aktif bağlantılar `pg_stat_activity`'den, verilmiş tablo erişimi `\\dp`\u002F`information_schema`'dan, şemalar ise `\\dn`'den gelir.",{"id":175,"topic":9,"difficulty":132,"body":176,"options":177,"correct_key":145,"explanation":186},"019f5d67-ff96-7f03-ac7c-9b85452c464e","psql oturumunda bir kez `\\timing` yazıp bir sorgu çalıştırdıktan sonra psql, sonucun altına `Time: 0.075 ms` gibi ek bir satır basar. `\\timing`'i ikinci kez yazmak ne yapar?",[178,180,182,184],{"key":136,"text":179},"Zamanlayıcıyı sıfırlar, böylece bir sonraki sorgunun süresi sıfır milisaniyeden ölçülür",{"key":139,"text":181},"psql'i, sorgu başına değil tüm oturum boyunca kümülatif süre gösterecek şekilde değiştirir",{"key":142,"text":183},"PostgreSQL'e sorgu çalışma süresini sunucu log dosyasına yazdırır",{"key":145,"text":185},"Özelliği kapatır, böylece sonraki sorgu sonuçlarının altında artık `Time:` satırı basılmaz","`\\timing` bir toggle'dır: her yazışında psql, her komuttan sonra geçen gerçek-zaman süresini gösterme\u002Fgöstermeme arasında geçiş yapar; bu, psql oturumunda client tarafında basılır — sunucu log'una veya herhangi bir sayaca dokunmaz.",{"id":188,"topic":9,"difficulty":132,"body":189,"options":190,"correct_key":136,"explanation":199},"019f5d67-ff97-7883-afea-018f8401224a","Bir junior geliştirici, PostgreSQL'e aynı anda 200 bağlantı açmanın, sunucu host'unun process listesini (`ps aux`) yaklaşık 200 satır büyüttüğünü fark ediyor. Neden?",[191,193,195,197],{"key":136,"text":192},"PostgreSQL process-per-connection modeli kullanır: postmaster her client bağlantısı için ayrı bir backend OS process'i fork eder",{"key":139,"text":194},"PostgreSQL tek bir paylaşılan process içinde bağlantı başına bir thread açar, `ps aux` ise thread'leri yanlışlıkla process olarak listeler",{"key":142,"text":196},"Her bağlantı, PostgreSQL'e o oturuma özel bir arka plan autovacuum worker'ı başlatmasına neden olur",{"key":145,"text":198},"Bu yalnızca `max_connections` varsayılan değerinde bırakıldığında olur, değer artırılınca ortadan kalkar","PostgreSQL'in klasik mimarisi, her client bağlantısı için tam bir OS backend process'i (thread değil) fork eder; bağlantı sayısının doğrudan process listesinde görünmesinin nedeni budur — ve bağlantıların bedava olmamasının da nedeni budur: her biri gerçek bellek ve OS zamanlama yükü taşır.",{"id":201,"topic":9,"difficulty":132,"body":202,"options":203,"correct_key":139,"explanation":212},"019f5d67-ff98-7285-9dab-62cb5ee67170","```sql\nSHOW statement_timeout;\n-- statement_timeout\n-- -------------------\n-- 0\n\nSET statement_timeout = '2s';\nSHOW statement_timeout;\n-- statement_timeout\n-- -------------------\n-- 2s\n```\nBu oturum kapandıktan ve yeni bir oturum bağlandıktan sonra `SHOW statement_timeout;` ne rapor eder?",[204,206,208,210],{"key":136,"text":205},"`2s`, çünkü `LOCAL` olmadan `SET`, değeri tüm gelecek bağlantılar için kalıcı yapar",{"key":139,"text":207},"`0` (ya da sunucu genelindeki varsayılan her ne ise), çünkü `SET` değeri yalnızca mevcut oturum için değiştirir",{"key":142,"text":209},"Hata, çünkü `statement_timeout` `SET` ile değil yalnızca `ALTER SYSTEM` ile değiştirilebilir",{"key":145,"text":211},"`2s`, çünkü PostgreSQL oturum-bazlı `SET` değerlerini veritabanının sistem catalog'unda saklar","Düz `SET`, bir çalışma-zamanı parametresini yalnızca mevcut oturumun ömrü boyunca (ya da reset edilene kadar) değiştirir; yeni bir bağlantıya asla kalıcı geçmez. Bir değeri tüm gelecek oturumlar için kalıcı yapmak `ALTER SYSTEM`, `ALTER DATABASE ... SET` ya da `postgresql.conf`'ta değişiklik gerektirir — bunların hiçbiri burada olmuyor.",{"fields":214,"seniorities":391,"interview_shapes":392,"locales":397,"oauth":399,"question_count":402,"coach_enabled":403,"jd_match_enabled":403},[215,240,261,278,302,315,324,343,365,372,378,385],{"key":216,"name_tr":217,"name_en":217,"sort":132,"specializations":218},"backend","Backend",[219,222,225,228,231,234,237],{"key":220,"name":221,"field":216},"general","Genel",{"key":223,"name":224,"field":216},"go","Go",{"key":226,"name":227,"field":216},"python","Python",{"key":229,"name":230,"field":216},"java","Java",{"key":232,"name":233,"field":216},"csharp","C#\u002F.NET",{"key":235,"name":236,"field":216},"nodejs","Node.js",{"key":238,"name":239,"field":216},"php","PHP",{"key":241,"name_tr":242,"name_en":242,"sort":243,"specializations":244},"frontend","Frontend",2,[245,246,249,252,255,258],{"key":220,"name":221,"field":241},{"key":247,"name":248,"field":241},"javascript","JavaScript",{"key":250,"name":251,"field":241},"typescript","TypeScript",{"key":253,"name":254,"field":241},"react","React",{"key":256,"name":257,"field":241},"vue","Vue",{"key":259,"name":260,"field":241},"angular","Angular",{"key":262,"name_tr":263,"name_en":263,"sort":264,"specializations":265},"fullstack","Fullstack",3,[266,267,268,269,270,271,272,273,274,275,276,277],{"key":220,"name":221,"field":262},{"key":223,"name":224,"field":216},{"key":226,"name":227,"field":216},{"key":229,"name":230,"field":216},{"key":232,"name":233,"field":216},{"key":235,"name":236,"field":216},{"key":238,"name":239,"field":216},{"key":247,"name":248,"field":241},{"key":250,"name":251,"field":241},{"key":253,"name":254,"field":241},{"key":256,"name":257,"field":241},{"key":259,"name":260,"field":241},{"key":279,"name_tr":280,"name_en":280,"sort":281,"specializations":282},"devops-cloud","DevOps \u002F Cloud",4,[283,284,287,290,293,296,299],{"key":220,"name":221,"field":279},{"key":285,"name":286,"field":279},"aws","AWS",{"key":288,"name":289,"field":279},"gcp","GCP",{"key":291,"name":292,"field":279},"azure","Azure",{"key":294,"name":295,"field":279},"kubernetes","Kubernetes",{"key":297,"name":298,"field":279},"terraform","Terraform",{"key":300,"name":301,"field":279},"linux","Linux",{"key":303,"name_tr":304,"name_en":304,"sort":305,"specializations":306},"ai-engineer","AI Engineer",5,[307,308,309,312],{"key":220,"name":221,"field":303},{"key":226,"name":227,"field":303},{"key":310,"name":311,"field":303},"llm-rag","LLM\u002FRAG",{"key":313,"name":314,"field":303},"mlops","MLOps",{"key":5,"name_tr":6,"name_en":316,"sort":317,"specializations":318},"Database",6,[319,320,321,322,323],{"key":220,"name":221,"field":5},{"key":124,"name":125,"field":5},{"key":121,"name":122,"field":5},{"key":117,"name":118,"field":5},{"key":127,"name":128,"field":5},{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"mobile","Mobil","Mobile",7,[330,331,334,337,340],{"key":220,"name":221,"field":325},{"key":332,"name":333,"field":325},"ios-swift","iOS (Swift)",{"key":335,"name":336,"field":325},"android-kotlin","Android (Kotlin)",{"key":338,"name":339,"field":325},"flutter","Flutter",{"key":341,"name":342,"field":325},"react-native","React Native",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"security","Güvenlik","Security",8,[349,350,353,356,359,362],{"key":220,"name":221,"field":344},{"key":351,"name":352,"field":344},"appsec","AppSec",{"key":354,"name":355,"field":344},"offensive-pentest","Offensive \u002F Pentest",{"key":357,"name":358,"field":344},"cloud-security","Cloud Security",{"key":360,"name":361,"field":344},"devsecops","DevSecOps",{"key":363,"name":364,"field":344},"blue-team-incident","Blue Team \u002F Incident",{"key":366,"name_tr":367,"name_en":368,"sort":369,"specializations":370},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[371],{"key":220,"name":221,"field":366},{"key":373,"name_tr":374,"name_en":374,"sort":375,"specializations":376},"data-engineer","Data Engineer",10,[377],{"key":220,"name":221,"field":373},{"key":379,"name_tr":380,"name_en":381,"sort":382,"specializations":383},"game-dev","Oyun Geliştirme","Game Development",11,[384],{"key":220,"name":221,"field":379},{"key":386,"name_tr":387,"name_en":387,"sort":388,"specializations":389},"ml-engineer","ML Engineer",12,[390],{"key":220,"name":221,"field":386},[14,15,16],{"junior":393,"mid":395,"senior":396},{"questions":394,"median_sec":3},20,{"questions":394,"median_sec":3},{"questions":394,"median_sec":3},[10,398],"en",[400,401],"google","github",21750,true]