[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en: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","Database","","mysql","MySQL","en",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 indexes are organized as B+-tree structures. What is actually stored in the leaf nodes of an InnoDB B+-tree index?",[135,138,141,144],{"key":136,"text":137},"a","The full row data (for a clustered index) or a reference to the clustered key (for a secondary index) — the leaf nodes carry the real payload",{"key":139,"text":140},"b","Only pointers to fixed disk-block addresses, ordered by insertion time rather than key value",{"key":142,"text":143},"c","A hash table mapping each key value directly to a row offset",{"key":145,"text":146},"d","Compressed summaries of each page, with the actual data kept only in the root node","InnoDB's B+-tree keeps navigation keys in the internal nodes and the actual payload in the leaves: for the clustered index (primary key), the leaf holds every column of the row; for a secondary index, the leaf holds the indexed column plus the primary key value used to look the row up. Internal\u002Froot nodes only route the search, they don't hold row data, which rules out (b), (c) and (d).",{"id":149,"topic":48,"difficulty":132,"body":150,"options":151,"correct_key":139,"explanation":160},"019f8780-5eaa-79d3-8b3c-aecd61dcdbc5","In InnoDB, what does it mean that a table's primary key is a 'clustered index'?",[152,154,156,158],{"key":136,"text":153},"Primary key values are cached separately in memory for fast lookup, with no relation to how rows are physically stored",{"key":139,"text":155},"The table's actual row data lives directly inside the primary key's B+-tree leaf pages, physically ordered by the primary key",{"key":142,"text":157},"The primary key column must simultaneously be covered by more than one index",{"key":145,"text":159},"Rows are grouped into fixed-size partitions based on a hash of the primary key","'Clustered index' means the table data itself IS the index structure: rows are stored in primary-key order inside the B+-tree leaf pages, so there is no separate row storage to point to. This is the core structural difference from a table with only secondary indexes, which merely point at this clustered data. (a), (c) and (d) all describe mechanisms InnoDB doesn't use for this.",{"id":162,"topic":48,"difficulty":163,"body":164,"options":165,"correct_key":142,"explanation":174},"019f8780-5eac-77e7-af65-453bf9cf929e",2,"A secondary index exists on `users.email`, and the table's primary key is `id`. What does a leaf-node entry of that secondary index actually contain?",[166,168,170,172],{"key":136,"text":167},"A direct pointer to the physical page\u002Foffset where the row is stored, kept updated whenever the row moves",{"key":139,"text":169},"A full copy of every column in the matching row, kept in sync with the clustered index",{"key":142,"text":171},"The indexed `email` value plus the row's primary key value",{"key":145,"text":173},"Only the `email` value; a secondary index alone can never be used to retrieve the rest of the row","InnoDB secondary index leaves store the indexed column(s) plus the row's primary key value(s), not a physical pointer. To fetch other columns, InnoDB does a second lookup into the clustered index using that primary key — this indirection is exactly why InnoDB's PK choice matters so much for secondary-index performance. (a) describes a physical-pointer model InnoDB doesn't use, (b) and (d) misdescribe what's stored and what's retrievable.",{"id":176,"topic":48,"difficulty":132,"body":177,"options":178,"correct_key":145,"explanation":187},"019f8780-5eae-75cf-9fd3-009c377c840e","A table is created without any `PRIMARY KEY` and without any `UNIQUE NOT NULL` index. What does InnoDB use internally as the clustered index in this case?",[179,181,183,185],{"key":136,"text":180},"It refuses to create the table at all until an explicit primary key is added",{"key":139,"text":182},"It silently falls back to MyISAM-style heap storage for just that table",{"key":142,"text":184},"It uses whatever column is defined first in `CREATE TABLE`, regardless of its type",{"key":145,"text":186},"It generates a hidden, internal `ROW_ID` column and clusters the table on that","InnoDB requires every table to have a clustered index. If you declare a `PRIMARY KEY`, that's used; otherwise it picks the first `UNIQUE NOT NULL` index; if neither exists, InnoDB silently adds an invisible auto-incrementing `ROW_ID` column and clusters on it. The table is still created (rules out a), it stays InnoDB (rules out b), and column order\u002Ftype play no role (rules out c).",{"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```\nreturns `possible_keys: idx_customer_id,PRIMARY` and `key: idx_customer_id`. What's the difference between the `key` column and the `possible_keys` column here?",[192,194,196,198],{"key":136,"text":193},"`key` is the single index the optimizer actually chose to execute this query; `possible_keys` only lists candidate indexes it considered",{"key":139,"text":195},"`key` lists every index that exists on the table; `possible_keys` lists ones scheduled to be used in a future query",{"key":142,"text":197},"`key` and `possible_keys` are always identical; MySQL just repeats the information for older client compatibility",{"key":145,"text":199},"`key` shows only the primary key index; `possible_keys` shows only secondary indexes, regardless of relevance","`possible_keys` is the optimizer's shortlist of indexes that could satisfy the query's predicates; `key` is the one it actually decided to use after cost estimation. Here both `idx_customer_id` and `PRIMARY` were viable, but only `idx_customer_id` was chosen. (b), (c), (d) all misdescribe the relationship between the two columns.",{"id":202,"topic":48,"difficulty":163,"body":203,"options":204,"correct_key":139,"explanation":213},"019f8780-5eb1-79e5-b691-522ec8e340d1","A query uses a composite index `(customer_id, order_date)` where `customer_id` is an `INT` (4 bytes). `EXPLAIN` shows `key_len: 4`. What does this value tell you?",[205,207,209,211],{"key":136,"text":206},"The index contains exactly 4 matching entries for this query",{"key":139,"text":208},"Only the 4-byte `customer_id` key part is used for this lookup",{"key":142,"text":210},"The full composite index, spanning 4 columns in total, is being used",{"key":145,"text":212},"The index scan touched exactly 4 index pages before it returned","`key_len` reports how many bytes of the index key were actually used to satisfy the query, which is a direct signal of how many leading columns of a composite index participated in the lookup. `key_len: 4` matching exactly the size of `customer_id` means the query only used that leading column — `order_date` wasn't part of the range\u002Fequality condition applied via the index. It has nothing to do with row counts (a), page counts (d), or total column count (c).",{"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":316,"name_en":6,"sort":317,"specializations":318},"Veritabanı",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},[398,10],"tr",[400,401],"google","github",21750,true]