[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:database\u002Fmysql":4,"config":214},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":7,"topic_name":7,"spec_key":8,"spec_name":9,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":118,"samples":129},"database","Veritabanı","","mysql","MySQL","tr",450,2475,[14,15,16],"junior","mid","senior",[18,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115],{"key":19,"name":20,"count":21},"backup-recovery","Backup Recovery",75,{"key":23,"name":24,"count":21},"data-modeling","Data Modeling",{"key":26,"name":27,"count":21},"indexing","Indexing",{"key":29,"name":30,"count":21},"mongodb-aggregation","Mongodb Aggregation",{"key":32,"name":33,"count":21},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":35,"name":36,"count":21},"mongodb-operations","Mongodb Operations",{"key":38,"name":39,"count":21},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":41,"name":42,"count":21},"mongodb-schema-modeling","Mongodb Schema Modeling",{"key":44,"name":45,"count":21},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":47,"name":48,"count":21},"mysql-indexes","Mysql Indexes",{"key":50,"name":51,"count":21},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":53,"name":54,"count":21},"mysql-operations","Mysql Operations",{"key":56,"name":57,"count":21},"mysql-query-optimization","Mysql Query Optimization",{"key":59,"name":60,"count":21},"mysql-replication-scaling","Mysql Replication Scaling",{"key":62,"name":63,"count":21},"mysql-types-constraints","Mysql Types Constraints",{"key":65,"name":66,"count":21},"nosql-models","Nosql Models",{"key":68,"name":69,"count":21},"performance-tuning","Performance Tuning",{"key":71,"name":72,"count":21},"pg-indexes","Pg Indexes",{"key":74,"name":75,"count":21},"pg-mvcc-vacuum","Pg Mvcc Vacuum",{"key":77,"name":78,"count":21},"pg-operations","Pg Operations",{"key":80,"name":81,"count":21},"pg-query-planning","Pg Query Planning",{"key":83,"name":84,"count":21},"pg-transactions-locking","Pg Transactions Locking",{"key":86,"name":87,"count":21},"pg-types-constraints","Pg Types Constraints",{"key":89,"name":90,"count":21},"query-optimization","Query Optimization",{"key":92,"name":93,"count":21},"redis-cluster-sharding","Redis Cluster Sharding",{"key":95,"name":96,"count":21},"redis-data-structures","Redis Data Structures",{"key":98,"name":99,"count":21},"redis-expiration-eviction","Redis Expiration Eviction",{"key":101,"name":102,"count":21},"redis-persistence","Redis Persistence",{"key":104,"name":105,"count":21},"redis-replication-sentinel","Redis Replication Sentinel",{"key":107,"name":108,"count":21},"redis-transactions-scripting","Redis Transactions Scripting",{"key":110,"name":111,"count":21},"replication-scaling","Replication Scaling",{"key":113,"name":114,"count":21},"security-access","Security Access",{"key":116,"name":117,"count":21},"transactions-isolation","Transactions Isolation",[119,122,123,126],{"key":120,"name":121,"count":11},"mongodb","MongoDB",{"key":8,"name":9,"count":11},{"key":124,"name":125,"count":11},"postgresql","PostgreSQL",{"key":127,"name":128,"count":11},"redis","Redis",[130,148,161,175,188,201],{"id":131,"topic":48,"difficulty":132,"body":133,"options":134,"correct_key":136,"explanation":147},"019f8780-5e48-7751-b714-cded0fd7faff",1,"InnoDB indeksleri B+-tree yapılar olarak organize edilir. Bir InnoDB B+-tree indeksinin leaf node'larında gerçekte ne saklanır?",[135,138,141,144],{"key":136,"text":137},"a","Satırın tamamı (clustered index için) ya da clustered key'e bir referans (secondary index için) — asıl içeriği taşıyan leaf node'lardır",{"key":139,"text":140},"b","Yalnızca insert sırasına göre sıralanmış, sabit disk-blok adreslerine pointer'lar",{"key":142,"text":143},"c","Her key değerini doğrudan bir satır offset'ine eşleyen bir hash tablosu",{"key":145,"text":146},"d","Her sayfanın sıkıştırılmış özetleri; gerçek veri yalnızca root node'da tutulur","InnoDB'nin B+-tree'sinde navigasyon key'leri iç node'larda, asıl payload ise leaf'lerdedir: clustered index (primary key) için leaf, satırın tüm kolonlarını tutar; secondary index için ise leaf, indekslenen kolonu artı satırı bulmak için kullanılan primary key değerini tutar. İç\u002Froot node'lar yalnızca aramayı yönlendirir, satır verisi tutmaz — bu yüzden (b), (c) ve (d) yanlıştır.",{"id":149,"topic":48,"difficulty":132,"body":150,"options":151,"correct_key":139,"explanation":160},"019f8780-5eaa-79d3-8b3c-aecd61dcdbc5","InnoDB'de bir tablonun primary key'inin 'clustered index' olması ne anlama gelir?",[152,154,156,158],{"key":136,"text":153},"Primary key değerleri, satırların fiziksel saklanışıyla ilgisi olmadan, hızlı arama için ayrıca bellekte cache'lenir",{"key":139,"text":155},"Tablonun gerçek satır verisi doğrudan primary key'in B+-tree leaf sayfalarının içinde, primary key'e göre fiziksel olarak sıralı yaşar",{"key":142,"text":157},"Primary key kolonunun aynı anda birden fazla index tarafından kapsanması gerekir",{"key":145,"text":159},"Satırlar, primary key'in hash'ine göre sabit boyutlu partition'lara gruplanır","'Clustered index', tablo verisinin kendisinin index yapısı OLDUĞU anlamına gelir: satırlar, B+-tree leaf sayfalarının içinde primary key sırasına göre saklanır; işaret edilecek ayrı bir satır deposu yoktur. Bu, yalnızca bu clustered veriye işaret eden secondary index'lere sahip bir tablodan temel yapısal farktır. (a), (c) ve (d) InnoDB'nin bunun için kullanmadığı mekanizmaları tarif eder.",{"id":162,"topic":48,"difficulty":163,"body":164,"options":165,"correct_key":142,"explanation":174},"019f8780-5eac-77e7-af65-453bf9cf929e",2,"`users.email` üzerinde bir secondary index var ve tablonun primary key'i `id`. Bu secondary index'in bir leaf-node girdisi gerçekte neyi içerir?",[166,168,170,172],{"key":136,"text":167},"Satırın fiziksel olarak saklandığı sayfaya\u002Foffset'e doğrudan bir pointer; satır her taşındığında güncellenir",{"key":139,"text":169},"Eşleşen satırın her kolonunun tam bir kopyası; clustered index ile senkron tutulur",{"key":142,"text":171},"İndekslenen `email` değeri artı primary key değeri; bu değer daha sonra clustered index'te tam satırı bulmak için kullanılır",{"key":145,"text":173},"Yalnızca `email` değeri; secondary index tek başına satırın geri kalanını almak için hiçbir zaman kullanılamaz","InnoDB secondary index leaf'leri, indekslenen kolon(lar)ı artı satırın primary key değer(ler)ini saklar, fiziksel bir pointer değil. Diğer kolonları almak için InnoDB, bu primary key ile clustered index'e ikinci bir arama yapar — bu dolaylılık, InnoDB'de PK seçiminin secondary-index performansı için bu kadar önemli olmasının tam sebebidir. (a) InnoDB'nin kullanmadığı fiziksel-pointer modelini tarif eder, (b) ve (d) neyin saklandığını ve alınabilir olduğunu yanlış anlatır.",{"id":176,"topic":48,"difficulty":132,"body":177,"options":178,"correct_key":145,"explanation":187},"019f8780-5eae-75cf-9fd3-009c377c840e","Bir tablo hiçbir `PRIMARY KEY` ve hiçbir `UNIQUE NOT NULL` index olmadan yaratılıyor. InnoDB bu durumda clustered index olarak dahili olarak neyi kullanır?",[179,181,183,185],{"key":136,"text":180},"Açık bir primary key eklenene kadar tabloyu hiç yaratmayı reddeder",{"key":139,"text":182},"Sessizce yalnızca o tablo için MyISAM tarzı heap depolamaya döner",{"key":142,"text":184},"Tipi ne olursa olsun `CREATE TABLE`'da ilk tanımlanan kolonu kullanır",{"key":145,"text":186},"Gizli, dahili bir `ROW_ID` kolonu üretir ve tabloyu bu kolon üzerinde kümeler","InnoDB her tablonun bir clustered index'e sahip olmasını gerektirir. `PRIMARY KEY` deklare edersen o kullanılır; yoksa ilk `UNIQUE NOT NULL` index seçilir; ikisi de yoksa InnoDB sessizce görünmez, otomatik-artan bir `ROW_ID` kolonu ekler ve tabloyu onun üzerinde kümeler. Tablo yine de yaratılır (a'yı eler), InnoDB kalmaya devam eder (b'yi eler), kolon sırası\u002Ftipi rol oynamaz (c'yi eler).",{"id":189,"topic":48,"difficulty":163,"body":190,"options":191,"correct_key":136,"explanation":200},"019f8780-5eaf-7acd-9201-02f502552d89","```sql\nEXPLAIN SELECT * FROM orders WHERE customer_id = 42;\n```\n`possible_keys: idx_customer_id,PRIMARY` ve `key: idx_customer_id` döner. Burada `key` kolonu ile `possible_keys` kolonu arasındaki fark nedir?",[192,194,196,198],{"key":136,"text":193},"`key`, optimizer'ın bu sorguyu çalıştırmak için gerçekten seçtiği tek index'tir; `possible_keys` yalnızca değerlendirdiği aday index'leri listeler",{"key":139,"text":195},"`key`, tabloda var olan her index'i listeler; `possible_keys` gelecekteki bir sorguda kullanılması planlanan index'leri listeler",{"key":142,"text":197},"`key` ve `possible_keys` her zaman aynıdır; MySQL sadece eski client uyumluluğu için bilgiyi tekrarlar",{"key":145,"text":199},"`key` yalnızca primary key index'ini gösterir; `possible_keys` ilgisi ne olursa olsun yalnızca secondary index'leri gösterir","`possible_keys`, optimizer'ın sorgunun predicate'lerini karşılayabilecek index'lerden oluşan kısa listesidir; `key` ise maliyet tahmininden sonra gerçekten kullanmaya karar verdiği tek index'tir. Burada hem `idx_customer_id` hem `PRIMARY` uygulanabilirdi ama yalnızca `idx_customer_id` seçildi. (b), (c), (d) iki kolon arasındaki ilişkiyi yanlış tarif eder.",{"id":202,"topic":48,"difficulty":163,"body":203,"options":204,"correct_key":139,"explanation":213},"019f8780-5eb1-79e5-b691-522ec8e340d1","Bir sorgu, `customer_id`'nin `INT` (4 byte) olduğu composite bir index `(customer_id, order_date)` kullanıyor. `EXPLAIN`, `key_len: 4` gösteriyor. Bu değer sana ne söyler?",[205,207,209,211],{"key":136,"text":206},"Index bu sorgu için tam olarak 4 eşleşen girdi içeriyor",{"key":139,"text":208},"Composite key'den yalnızca baştaki `customer_id` kolonu (4 byte) kullanılıyor — `order_date` burada index aramasının parçası değil",{"key":142,"text":210},"Toplamda 4 kolona yayılan tüm composite index kullanılıyor",{"key":145,"text":212},"Index scan geri dönmeden önce tam olarak 4 index sayfasına dokundu","`key_len`, sorguyu karşılamak için index key'inin kaç byte'ının gerçekten kullanıldığını bildirir; bu, composite bir index'in kaç baştaki kolonunun aramaya katıldığının doğrudan sinyalidir. `key_len: 4` değeri tam olarak `customer_id`'nin boyutuna eşit olduğundan, sorgu yalnızca o baştaki kolonu kullandı — `order_date`, index üzerinden uygulanan aralık\u002Feşitlik koşulunun parçası değildi. Satır sayısıyla (a), sayfa sayısıyla (d) ya da toplam kolon sayısıyla (c) ilgisi yoktur.",{"fields":215,"seniorities":391,"interview_shapes":392,"locales":397,"oauth":399,"question_count":402,"coach_enabled":403,"jd_match_enabled":403},[216,241,261,278,302,315,324,343,365,372,378,385],{"key":217,"name_tr":218,"name_en":218,"sort":132,"specializations":219},"backend","Backend",[220,223,226,229,232,235,238],{"key":221,"name":222,"field":217},"general","Genel",{"key":224,"name":225,"field":217},"go","Go",{"key":227,"name":228,"field":217},"python","Python",{"key":230,"name":231,"field":217},"java","Java",{"key":233,"name":234,"field":217},"csharp","C#\u002F.NET",{"key":236,"name":237,"field":217},"nodejs","Node.js",{"key":239,"name":240,"field":217},"php","PHP",{"key":242,"name_tr":243,"name_en":243,"sort":163,"specializations":244},"frontend","Frontend",[245,246,249,252,255,258],{"key":221,"name":222,"field":242},{"key":247,"name":248,"field":242},"javascript","JavaScript",{"key":250,"name":251,"field":242},"typescript","TypeScript",{"key":253,"name":254,"field":242},"react","React",{"key":256,"name":257,"field":242},"vue","Vue",{"key":259,"name":260,"field":242},"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":221,"name":222,"field":262},{"key":224,"name":225,"field":217},{"key":227,"name":228,"field":217},{"key":230,"name":231,"field":217},{"key":233,"name":234,"field":217},{"key":236,"name":237,"field":217},{"key":239,"name":240,"field":217},{"key":247,"name":248,"field":242},{"key":250,"name":251,"field":242},{"key":253,"name":254,"field":242},{"key":256,"name":257,"field":242},{"key":259,"name":260,"field":242},{"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":221,"name":222,"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":221,"name":222,"field":303},{"key":227,"name":228,"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":221,"name":222,"field":5},{"key":124,"name":125,"field":5},{"key":8,"name":9,"field":5},{"key":120,"name":121,"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":221,"name":222,"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":221,"name":222,"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":221,"name":222,"field":366},{"key":373,"name_tr":374,"name_en":374,"sort":375,"specializations":376},"data-engineer","Data Engineer",10,[377],{"key":221,"name":222,"field":373},{"key":379,"name_tr":380,"name_en":381,"sort":382,"specializations":383},"game-dev","Oyun Geliştirme","Game Development",11,[384],{"key":221,"name":222,"field":379},{"key":386,"name_tr":387,"name_en":387,"sort":388,"specializations":389},"ml-engineer","ML Engineer",12,[390],{"key":221,"name":222,"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]