Üst 50 MySQL Mülakat Soruları ve Cevapları (2026)
için hazırlanıyor MySQL Mülakat mı? Gerçekten önemli olan şeyleri daha iyi anlamanın zamanı geldi. Bu sorular sadece bilginizi test etmekle kalmaz, aynı zamanda analitik derinliğinizi, teknik bakış açınızı ve gerçek dünya problemlerini çözme becerilerinizi de ortaya çıkarır.
MySQL Mülakat soruları, yeni başlayanlar, orta düzey ve kıdemli profesyoneller için farklı rollerde çeşitli fırsatların kapılarını açar. Bu sorular, teknik uzmanlığı, alan uzmanlığını ve analitik becerileri değerlendirmeye yardımcı olurken, alanda çalışarak kazanılan profesyonel deneyimi yansıtır. Temelden ileri seviyeye kadar bu soru ve cevaplar, adayların gerçek, köklü teknik deneyimlerini göstermelerine yardımcı olur.
65'ten fazla teknik lider, 80'den fazla yönetici ve sektörler genelinde 100 profesyonelin görüşlerine dayanarak, güvenilir MySQL Gerçek dünya uygulamalarını, işe alım perspektiflerini ve gelişen teknik ölçütleri kapsayan mülakat rehberliği.

Iyi MySQL Mülakat Soruları ve Cevapları
1) Nedir MySQLve veritabanı yönetiminde neden bu kadar yaygın olarak kullanılıyor?
MySQL verileri satır ve sütunlardan oluşan tablolarda depolayan açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir (RDBMS). Geliştiricilerin verileri verimli bir şekilde tanımlamasına, düzenlemesine ve sorgulamasına olanak tanıyan Yapılandırılmış Sorgu Dili (SQL) üzerine kuruludur. MySQL LAMP yığınının bir parçasıdır (Linux, Apache, MySQL, PHP/Python), web uygulama geliştirmenin temel taşlarından biri haline gelmiştir.
Anahtar Avantajları:
- Optimize edilmiş depolama motorları (InnoDB, MyISAM) ile yüksek performans.
- Ticari destekle açık kaynaklı lisanslama Oracle.
- Güçlü topluluk desteği ve platformlar arası uyumluluk.
Örnek: Facebook gibi web siteleri, YouTubeve Twitter kullandı MySQL ölçeklenebilirliği ve maliyet etkinliği nedeniyle temel veritabanı sistemlerinin bir parçası olarak.
👉 Ücretsiz PDF İndir: MySQL Mülakat Soruları ve Cevapları
2) Nasıl MySQL SQL'den farklıdırlar ve bunların rolleri nelerdir?
SQL bir dildir, ancak MySQL Bu dili uygulayan bir yazılım sistemidir. SQL, veritabanlarıyla nasıl etkileşim kurulacağını tanımlarken, MySQL Verileri depolamak, sorgulamak ve yönetmek için fiziksel ve mantıksal mimariyi sağlar.
| faktör | SQL | MySQL |
|---|---|---|
| Tanım | İlişkisel veritabanlarını yönetme dili | SQL sözdizimini kullanan RDBMS |
| İşlev | Verileri sorgulamak ve düzenlemek için kullanılır | Bir veritabanı motorunda SQL sorgularını yürütür |
| Örnek E-posta | SELECT * FROM employees; |
Sorguyu yürütür MySQL sunucu |
| Mülkiyet | Açık standart (ISO/ANSI) | Tarafından geliştirilen ve sürdürülen Oracle |
Özet olarak: SQL “dilbilgisini” sağlar; MySQL onu anlayan ve uygulayan “motoru” sağlar.
3) CHAR ve VARCHAR veri tipleri arasındaki farkı örneklerle açıklayınız.
Her ikisi de TANK ve VARCHAR Dize değerlerini depolarlar, ancak depolama davranışları farklıdır.
TANK sabit uzunlukta bir türdür, yani her zaman belirtilen karakter sayısını ayırır ve daha kısa değerleri boşluklarla doldurur. VARCHARAncak, değişken uzunluktadır ve yalnızca gerçek dize uzunluğuna eşdeğer alan kullanır.
| Varlığınızı | TANK | VARCHAR |
|---|---|---|
| uzunluk | Sabit | Değişken |
| hız | Sabit boyutlu veriler için daha hızlı | Değişken boyutlu veriler için daha verimli |
| Depolama | Tanımlı uzunluk kullanılır | Gerçek veri + 1 bayt kullanır |
| Örnek E-posta | CHAR(10) "Merhaba"yı "Merhaba" olarak depolar |
VARCHAR(10) "Merhaba"yı "Merhaba" olarak depolar |
Örnek: Eğer tanımlarsan CHAR(5) ve 'SQL'i ekleyin, MySQL bunu 'SQL␣ ␣' olarak depolar. Buna karşılık, VARCHAR(5) sadece 'SQL' depolanacaktır.
4) Nasıl MySQL Farklı depolama motorlarını nasıl yönetirsiniz ve bunların temel özellikleri nelerdir?
MySQL çoklu destekler depolama motorlarıHer biri belirli kullanım durumları için optimize edilmiştir. Bir depolama motoru, verilerin bir tabloda nasıl depolanacağını, dizine ekleneceğini ve kilitleneceğini belirler.
| Motor | özellikleri | Kullanım çantası |
|---|---|---|
| InnoDB'nin | İşlemleri, yabancı anahtarları ve satır düzeyinde kilitlemeyi destekler | OLTP sistemleri, yüksek bütünlük |
| MyISAM | Hızlı okuma hızı, tablo düzeyinde kilitleme, işlem desteği yok | Okuma ağırlıklı sistemler |
| BELLEK | Hızlı erişim için RAM'de saklanan veriler | Geçici veri depolama |
| ARŞİV | Sıkıştırılmış depolama, salt okunur erişim | Tarihsel veri arşivleme |
| FEDERASYON | Uzak sunuculardan verilere erişim sağlar | Dağıtılmış veritabanı sistemleri |
Örnek: İşlem güvenliğinin önemli olduğu e-ticaret veritabanlarında InnoDB tercih edilirken, okuma hızının ön planda olduğu analitiklerde MyISAM tercih ediliyor.
5) Farklı ilişki türleri nelerdir? MySQLve bunlar nasıl uygulanıyor?
MySQL Tablolar arasındaki ilişkileri temsil etmek için üç temel ilişki türünü destekler:
| Menşei | Tanım | Örnek E-posta |
|---|---|---|
| Bire bir | Tablo A'daki her kayıt, Tablo B'deki kayıtlardan biriyle tam olarak ilişkilidir | A user bir tane var profile |
| Bire Çok | Tablo A'daki bir kayıt, Tablo B'deki birçok kayda eşleşir | A customer çoklu var orders |
| Çoktan Çoğa | Tablo A'daki birden fazla kayıt, Tablo B'deki birden fazla kayıtla ilişkilidir | A student birçok şeye kaydolur courses |
Uygulama: Çoktan çoğa ilişkiler genellikle bir bağlantı tablosu (Örneğin, student_course) her iki varlığa da referans veren yabancı anahtarlar içerir.
6) Normalizasyon Nedir? MySQLve çeşitleri nelerdir?
Normalizasyon, gereksiz verileri azaltmak ve veri bütünlüğünü iyileştirmek için verileri düzenleme sürecidir. Büyük tabloları daha küçük, ilişkili tablolara böler ve yabancı anahtarlar kullanarak ilişkiler kurar.
| normal biçim | Tanım | Anahtar Kural |
|---|---|---|
| 1NF | Tekrarlayan grupları ortadan kaldırır | Her hücre atomik değerleri tutar |
| 2NF | Kısmi bağımlılıkları kaldırır | Her sütun birincil anahtarın tamamına bağlıdır |
| 3NF | Geçişli bağımlılıkları kaldırır | Anahtar olmayan sütunlar yalnızca birincil anahtara bağlıdır |
Örnek: Tek students tablo ile student_name, course1, course2 iki tabloya bölünmelidir — students ve courses — yabancı bir anahtarla bağlantılı.
7) DELETE, TRUNCATE ve DROP komutları arasındaki farkı açıklayınız.
Her üç komut da veriyi siler ancak kapsam ve davranış açısından farklılık gösterir.
| Komuta | İşlev | Rollback | hız | kapsam |
|---|---|---|---|---|
| SİL | Belirli satırları kaldırır | Evet (bir işlem dahilindeyse) | ılımlı | Sadece veri |
| KIRMIZI | Tüm satırları hızlıca siler | Yok hayır | Hızlı | Sadece veri |
| DAMLA | Tablo yapısını ve verileri kaldırır | Yok hayır | Hızlı | Tablo ve şema |
Örnek:
DELETE FROM employees WHERE id=5; bir satırı kaldırır.
TRUNCATE TABLE employees; tüm satırları temizler ancak yapıyı korur.
DROP TABLE employees; tüm tablo tanımını siler.
8) JOIN'ler nasıl kullanılır? MySQLve bunların farklı türleri nelerdir?
A JOIN Birden fazla tablodaki verileri ilgili sütunlara göre birleştirir. Normalleştirilmiş yapılardan kapsamlı, ilişkisel verilerin alınmasına olanak tanır.
| Menşei | Tanım | Örnek E-posta |
|---|---|---|
| INNER JOIN | Her iki tabloda da eşleşen değerlere sahip kayıtları döndürür | Departmanları olan çalışanlar |
| SOL KATILIN | Sol tablodaki tüm kayıtları, eşleşme olmasa bile döndürür | Tüm çalışanlar, atanmamış olanlar bile |
| DOĞRU BİRLEŞTİR | Sağdaki tablodan her şeyi döndürür | Tüm bölümler, boş olsa bile |
| ÇAPRAZ KATIL | Kartezyen ürününü döndürür | Tüm olası kombinasyonlar |
Örnek:
SELECT e.name, d.department_name FROM employees e INNER JOIN departments d ON e.dept_id = d.id;
9) AUTO_INCREMENT nasıl çalışır? MySQLve özel bir değerden başlayabilir mi?
MKS AUTO_INCREMENT özniteliği, bir tablodaki her yeni satır için otomatik olarak benzersiz bir sayısal değer üretir. Genellikle birincil anahtar sütunları için kullanılır.
Sözdizimi Örneği:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) );
Özel bir değerden başlamak için:
ALTER TABLE users AUTO_INCREMENT = 1000;
Avantajları:
- Manuel girişe gerek kalmadan benzersizliği garanti eder.
- Eşzamanlı eklemelerde anahtar çoğaltılmasını önler.
Not: Bir kayıt silindiğinde, MySQL yeniden kullanılmıyor AUTO_INCREMENT varsayılan değer.
10) Görünümlerin amacı nedir? MySQLve bunların faydaları ve sınırlamaları nelerdir?
A Görüntüle Bir sorgunun sonuç kümesinden oluşturulan sanal bir tablodur. Karmaşık sorguları yeniden kullanılabilir mantıksal tablolar halinde kapsülleyerek basitleştirir.
Faydaları:
- Karmaşık birleştirmeleri gizleyerek veri erişimini basitleştirir.
- Yalnızca gerekli sütunları açığa çıkararak güvenliği artırır.
- Önceden tanımlanmış mantığı yeniden kullanarak yedekliliği azaltır.
Sınırlamalar:
- Her zaman doğrudan güncellenemez.
- Verileri fiziksel olarak depolamaz, bu da yoğun birleştirmelerde performansı etkileyebilir.
Örnek:
CREATE VIEW active_users AS SELECT name, email FROM users WHERE status='active';
11) Endeksleme performansı nasıl artırır? MySQLve endekslerin farklı türleri nelerdir?
Dizinler MySQL Bir veritabanı tablosunda veri alma işlemlerini hızlandıran arama tabloları olarak işlev görürler. Bir kitaptaki dizin gibi işlev görerek, MySQL tüm veri setini taramadan belirli satırları bulun.
| Menşei | Tanım | Örnek Kullanım Örneği |
|---|---|---|
| Birincil Endeks | Birincil anahtar sütununda otomatik olarak oluşturuldu | Satırları benzersiz şekilde tanımlar |
| Benzersiz Endeks | Yinelenen değerleri önler | E-mail adresleri |
| Bileşik Endeks | Birleştirilmiş filtreleme için çok sütunlu dizin | (ad, soyad) |
| Tam Metin Dizini | Metin araması için kullanılır | Makale arama motorları |
| Mekansal Endeks | Coğrafi veya mekansal verileri işler | Haritalama ve CBS uygulamaları |
Örnek:
CREATE INDEX idx_customer_name ON customers(name);
Bahşiş: Aşırı indeksleme yazma işlemlerini yavaşlatabilir, bu nedenle hız ve depolama verimliliği arasında denge çok önemlidir.
12) Tetikleyiciler nelerdir? MySQLve nasıl çalışıyorlar?
A Tetik belirli veritabanı olaylarına yanıt olarak otomatik olarak yürütülen bir dizi talimattır. INSERT, UPDATEya da DELETEVeri tutarlılığını sağlarlar ve veritabanı düzeyinde iş mantığını uygularlar.
| Tetik Tipi | Yürütme Zamanlaması |
|---|---|
| EKLEME/GÜNCELLEME/SİLME ÖNCESİ | Değişiklikten önce yürütülür |
| EKLEME/GÜNCELLEME/SİLME SONRASINDA | Değişiklikten sonra yürütülür |
Örnek:
CREATE TRIGGER update_timestamp BEFORE UPDATE ON employees FOR EACH ROW SET NEW.modified_at = NOW();
Faydaları:
- Rutin veri görevlerini otomatikleştirir.
- Veri bütünlüğü kurallarını uygular.
- Uygulama düzeyinde mantığa olan ihtiyacı azaltır.
Dezavantajları:
- Karmaşık hata ayıklama.
- Yanlış kullanıldığında performansı etkileyebilir.
13) Ortak Tablo İfadelerini (CTE'leri) açıklayın MySQL ve faydaları.
A Ortak Tablo İfadesi (CTE) tek bir SQL ifadesinin yürütme kapsamı içinde tanımlanan geçici bir sonuç kümesidir. MySQL 8.0, karmaşık sorguları basitleştirir ve yinelemeyi destekler.
Sözdizimi Örneği:
WITH employee_cte AS ( SELECT id, name, manager_id FROM employees ) SELECT * FROM employee_cte WHERE manager_id IS NULL;
Faydaları:
- Sorgu okunabilirliğini artırır.
- Yinelenen sorgulara (örneğin, hiyerarşik veriler) izin verir.
- Alt sorgu tekrarını azaltır.
Yinelemeli CTE Örneği:
WITH RECURSIVE hierarchy AS ( SELECT id, name, manager_id FROM employees WHERE manager_id IS NULL UNION ALL SELECT e.id, e.name, e.manager_id FROM employees e INNER JOIN hierarchy h ON e.manager_id = h.id ) SELECT * FROM hierarchy;
14) İşlemler Nelerdir? MySQLve veri bütünlüğünü nasıl sağlıyorlar?
A işlem tek bir mantıksal iş birimi olarak gerçekleştirilen bir dizi işlemdir. İşlemler aşağıdaki adımları izler: ASİT ilkeler — Atomicity, Tutarlılık, Yalıtım ve Dayanıklılık — veri güvenilirliğini garanti altına alır.
| Varlığınızı | Tanım |
|---|---|
| Atombuzlu | Tüm işlemler birlikte başarılı olur veya başarısız olur |
| Tutarlılık | Veritabanı bütünlüğü kısıtlamalarını korur |
| Izolasyon | İşlemler birbirini etkilemez |
| dayanıklılık | Değişiklikler bir onaydan sonra da devam ediyor |
Örnek:
START TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE id=1; UPDATE accounts SET balance = balance + 100 WHERE id=2; COMMIT;
Kullanım Örneği: Kısmi güncellemelerin veri kaybına yol açabileceği banka fon transferleri, işlemsel güvenlik gerektirir.
15) Avantajları ve dezavantajları nelerdir? MySQL çoğaltma?
MySQL Çoğaltma, verilerin bir veritabanı sunucusundan (birincil sunucu) diğerine (kopya sunucu) kopyalanmasını içerir. Performansı ve hata toleransını artırır.
| Avantajlar | Dezavantajlar |
|---|---|
| Sunucular arasında yük dengeleme | Artan bakım karmaşıklığı |
| Yedekleme ve kurtarma seçenekleri | Veri senkronizasyonunda hafif gecikme |
| Okumalar için yüksek kullanılabilirlik | Asenkron modda veri tutarsızlığı riski |
Örnek Kurulum:
CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='replica', MASTER_PASSWORD='password'; START SLAVE;
Dağıtık mimarilerde, özellikle 7/24 kesintisiz çalışma gerektiren büyük ölçekli web uygulamalarında çoğaltma olmazsa olmazdır.
16) Nasıl MySQL JSON verilerini nasıl yönetebiliriz ve faydaları nelerdir?
MySQL destekler JSON veri türü (5.7 sürümünden itibaren) yarı yapılandırılmış verileri doğrudan ilişkisel tablolarda depolamak için kullanılır. İlişkisel bütünlükten ödün vermeden esneklik sağlar.
Örnek:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
attributes JSON
);
INSERT INTO products (attributes) VALUES ('{"color": "red", "size": "M"}');
Faydaları:
- Dinamik şema senaryoları için idealdir.
- Hibrit ilişkisel ve NoSQL yaklaşımlarını mümkün kılar.
- Şunlar gibi yerleşik işlevler sunar:
JSON_EXTRACT()veJSON_ARRAY().
Örnek Sorgu:
SELECT JSON_EXTRACT(attributes, '$.color') AS color FROM products;
17) Görünümler ve Somutlaştırılmış Görünümler nedir ve aralarındaki farklar nelerdir?
A Görüntüle bir sorgu sonucunun mantıksal bir gösterimidir, oysa Gerçekleştirilmiş Görünüm daha hızlı erişim için sorgu çıktısını fiziksel olarak depolar (yerel olarak desteklenmez) MySQL (ama taklit edilebilir).
| Görünüş | Görüntüle | Gerçekleştirilmiş Görünüm |
|---|---|---|
| Depolama | Sanal (veri saklanmaz) | Fiziksel (veri anlık görüntüsünü depolar) |
| Performans | Sorgu yürütülmesine bağlıdır | Tekrarlanan okumalar için daha hızlı |
| Bakım | Daima güncel | Manuel yenileme gerektirir |
| Kullanım çantası | Karmaşık birleştirmeleri basitleştirin | Analitik sorguları hızlandırın |
Örnek:
CREATE VIEW high_value_orders AS SELECT * FROM orders WHERE total > 1000;
Somutlaştırılmış Görünüm için Geçici Çözüm: Bir tablo oluşturun ve zamanlanmış bir olayı kullanarak yenileyin.
18) INNER JOIN ile LEFT JOIN arasındaki farkı örneklerle açıklayınız.
| Özellikler | INNER JOIN | SOL KATILIN |
|---|---|---|
| Sonuç | Yalnızca eşleşen satırları döndürür | Sol tablodaki tüm satırları döndürür |
| Boş İşleme | Eşleşmeyen satırları hariç tutar | Eşleşmeyen sağ taraf değerleri için NULL içerir |
| Performans | Genellikle daha hızlı | NULL dolgusu nedeniyle biraz daha yavaş |
Örnek:
SELECT e.name, d.department_name FROM employees e INNER JOIN departments d ON e.dept_id = d.id;
ve
SELECT e.name, d.department_name FROM employees e LEFT JOIN departments d ON e.dept_id = d.id;
İlk sorgu yalnızca departmanlara atanmış çalışanları getirirken, ikinci sorgu departmanı olmayanlar da dahil olmak üzere tüm çalışanları içerir.
19) Sorgu performansını nasıl optimize edersiniz? MySQL?
Sorguları optimize etmek, şema tasarımı, dizinleme stratejisi ve yürütme planı analizinin bir kombinasyonunu içerir.
Temel Optimizasyon Faktörleri:
- EXPLAIN Planını Kullanın – Sorgu yürütme yollarını analiz edin.
- **SELECT'ten kaçının*** – Yalnızca gerekli sütunları al.
- Uygun İndekslemeyi Uygulayın – Kullanılan dizin sütunları
WHEREorJOIN. - Verileri Normalleştir – Daha küçük veri kümeleri için gereksiz tekrarları ortadan kaldırın.
- LIMIT ve Sayfalandırmayı kullanın – Gereksiz veri yüklemesini önleyin.
- Birleşimleri Optimize Et – İndeksli birleştirme anahtarlarının ve tutarlı veri tiplerinin sağlanması.
Örnek:
EXPLAIN SELECT * FROM orders WHERE customer_id = 100;
Gelişmiş İpucu: Kullan query_cache_type ve innodb_buffer_pool_size ince ayarlı performans için ayarlar.
20) Arasındaki farklar nelerdir? Clustered ve OlmayanClustered Endeksleri MySQL?
| Varlığınızı | ClusterDüzenlenmiş Dizin | Olmayan-ClusterDüzenlenmiş Dizin |
|---|---|---|
| Depolama | Veri satırları dizin sırasına göre depolanır | Verilerden ayrı yapı |
| Adet | Masa başına yalnızca bir tane | Birden fazla izin verildi |
| Erişim Hızı | Aralık sorguları için daha hızlı | Rastgele aramalar için daha hızlı |
| Örnek Motor | InnoDB'nin | MyISAM |
Açıklama: Kümelenmiş dizin, bir tablodaki verilerin fiziksel sırasını tanımlar. InnoDB, kümelenmiş dizin olarak birincil anahtarı kullandığından, birincil anahtar aracılığıyla veri alımı daha hızlıdır. Kümelenmemiş dizinler ise aksine, verilere işaretçiler tutarak esnekliği artırır ancak daha fazla alan gerektirir.
Örnek:
CREATE UNIQUE INDEX idx_email ON users(email);
21) Saklı Prosedürler Nelerdir? MySQLve bunların faydaları ve sınırlamaları nelerdir?
A Saklı yordam Veritabanında saklanan önceden derlenmiş bir SQL ifadeleri kümesidir. Mantığın yeniden kullanılmasını sağlar ve istemci-sunucu iletişim yükünü azaltarak performansı artırır.
Örnek:
DELIMITER //
CREATE PROCEDURE GetEmployeeDetails(IN emp_id INT)
BEGIN
SELECT * FROM employees WHERE id = emp_id;
END //
DELIMITER ;
| Faydalar | Sınırlamalar |
|---|---|
| Tekrarlanan kodu azaltır | Hata ayıklamak daha zor |
| Ön derleme yoluyla performansı artırır | Sürüm kontrol karmaşıklığı |
| Kapsülleme yoluyla güvenliği artırır | Aşırı kullanıldığında sunucu yükünü artırabilir |
Örnek Kullanım Durumu: Genellikle veri doğrulama, işlem yönetimi ve raporlama otomasyonu için kullanılır.
22) Kilitler nasıl çalışır? MySQLve farklı kilitleme mekanizmaları nelerdir?
Kilitleme, veri tutarlılığını sağlar ve birden fazla işlem sırasında eş zamanlı çakışmaları önler.
| Kilit tipi | Tanım | Örnek E-posta |
|---|---|---|
| Masa Kilidi | İşlemler sırasında tüm tabloyu kilitler | MyISAM tarafından kullanılır |
| Satır Kilidi | Yalnızca etkilenen satırları kilitler | InnoDB tarafından kullanılır |
| Paylaşılan Kilit | Eşzamanlı okumalara izin verir ancak yazmaları engeller | SEÇ… PAYLAŞIM MODUNDA KİLİTLE |
| Özel Kilit | Diğer tüm erişimleri engeller | GÜNCELLEME ve SİLME işlemleri |
Örnek:
SELECT * FROM accounts WHERE id=5 FOR UPDATE;
Bahşiş: tercih ederim satır düzeyinde kilitleme Veri bütünlüğünü korurken eşzamanlılığı artırmak için işlemsel sistemlerde.
23) Geçici Tablolar ile Türetilmiş Tablolar arasındaki farkı açıklayın. MySQL.
| Görünüş | Geçici Tablo | Türetilmiş Tablo |
|---|---|---|
| Tanım | Oturum için fiziksel olarak oluşturuldu | Yalnızca sorgu yürütülürken mevcuttur |
| Görünürlük | Oturum boyunca erişilebilir | Yalnızca geçerli sorguda erişilebilir |
| Performans | Tekrarlanan kullanım için daha hızlı | Tek kullanımlık hesaplamalar için uygundur |
| Sözdizimi Örneği | CREATE TEMPORARY TABLE temp_users AS SELECT * FROM users; |
SELECT * FROM (SELECT * FROM users WHERE status='active') AS active_users; |
Kullanım Durumu Örneği: Geçici tablolar çok adımlı işlemler için idealdir, türetilmiş tablolar ise tek sorgu dönüşümleri için verimlidir.
24) Erişim Kontrol Listelerinin (ACL'ler) rolü nedir? MySQL güvenlik?
Erişim Kontrol Listeleri, kimin hangi işlemleri gerçekleştirebileceğini tanımlar MySQLBunlar, yaptırımların uygulanması için gereklidir veritabanı güvenliği ve ayrıcalık ayrımı.
Anahtar bileşenler:
- Kullanıcı hesapları: Kullanıcı adı ve ana bilgisayar tarafından tanımlanır (örneğin,
'user'@'localhost'). - Ayrıcalıklar: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, vb. içerir.
- Hibe Tabloları: İçinde saklandı
mysqlveritabanı (örneğin,user, db, tables_priv).
Örnek:
GRANT SELECT, UPDATE ON employees TO 'analyst'@'localhost'; FLUSH PRIVILEGES;
Kimlik Doğrulama Yaşam Döngüsü: Bir kullanıcı bağlandığında, MySQL Kimlik bilgilerini kontrol eder, ayrıcalıkları doğrular ve tanımlanmış izinler kapsamında sorguları yürütür.
25) Roller nasıl geliştirilir? MySQL kullanıcı yönetimi?
Roller Kullanıcı yönetimini ve erişim yönetimini basitleştiren, bir araya getirilmiş ayrıcalıkların bir koleksiyonudur.
Örnek:
CREATE ROLE 'reporting_user'; GRANT SELECT, EXECUTE ON company.* TO 'reporting_user'; GRANT 'reporting_user' TO 'john'@'localhost'; SET DEFAULT ROLE 'reporting_user' TO 'john'@'localhost';
Avantajları:
- Ayrıcalık yönetimini basitleştirir.
- Kurumsal kurulumlar için ölçeklenebilirliği artırır.
- Doğrudan ayrıcalıklar yerine önceden tanımlanmış roller atayarak güvenliği artırır.
Not: Roller şu şekilde desteklenir: MySQL 8.0 itibaren.
26) Nasıl MySQL hata yönetimi ve istisna işlemeyi nasıl halledersiniz?
MySQL kullanır İŞLEYİCİYİ BİLDİR ve SİNYAL depolanan programlar içindeki çalışma zamanı hatalarını yönetme mekanizmaları.
Örnek:
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; SELECT 'Transaction failed, rolled back' AS message; END;
İşleyici Türleri:
- DEVAM İŞLEYİCİSİ: Hatayı atlar ve yürütmeye devam eder.
- ÇIKIŞ İŞLEYİCİSİ: Bloğu sonlandırır ve isteğe bağlı olarak geri alma işlemini gerçekleştirir.
En iyi pratik: Görev açısından kritik sistemlerde tutarlı veri kurtarma için hata yönetimini işlemlerle birleştirin.
27) Pencere Fonksiyonları Nelerdir? MySQLve Toplam Fonksiyonlardan nasıl farklıdırlar?
Pencere İşlevleri Sonuç kümesini daraltmadan, geçerli satırla ilgili bir dizi tablo satırında hesaplamalar gerçekleştirin.
| Özellikler | Toplama İşlevi | Pencere İşlevi |
|---|---|---|
| Çıktı | Grup başına bir satır | Giriş başına bir satır |
| fıkra | Kullanımlar GROUP BY |
Kullanımlar OVER() |
| Örnek E-posta | SUM(salary) |
SUM(salary) OVER (PARTITION BY department) |
Örnek:
SELECT department, employee_name,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS salary_rank
FROM employees;
Uygulamalar: Sıralama, kümülatif toplamlar, çalışan toplamlar ve analitik sorgular.
28) Sorgu Yürütme Yaşam Döngüsünü Açıklayın MySQL.
Bir sorgunun yaşam döngüsü MySQL Bir komutun istemciden veritabanı motoruna nasıl taşınacağını ve sonuçları nasıl döndüreceğini tanımlar.
Yaşam Döngüsü Aşamaları:
- Ayrıştırma: SQL sözdizimi doğrulaması.
- Optimizasyon: Sorgu planlayıcısı en verimli yürütme yolunu belirler.
- yürütme: Depolama motoru verileri alır veya değiştirir.
- Sonuç Önbelleğe Alma: Sıkça sorgulanan sonuçlar önbelleğe alınabilir.
- Dönüş: Veriler istemci uygulamasına geri gönderildi.
Örnek: yürütülürken SELECT * FROM customers WHERE city='Delhi';, bir dizin varsa, optimize edici tam tablo taraması yerine bir dizin taraması seçebilir city bulunmaktadır.
29) Saklı Fonksiyonların Saklı Prosedürlere göre avantajları ve dezavantajları nelerdir?
| Görünüş | Saklı yordam | Saklanan İşlev |
|---|---|---|
| Dönüş Tipi | Birden fazla sonuç döndürebilir | Tek bir değer döndürülmelidir |
| kullanım | Aracılığıyla yürütüldü CALL |
SQL ifadelerinde kullanılır |
| Esneklik | Daha geniş kontrol akış mantığı | Deterministik mantıkla sınırlıdır |
| Örnek E-posta | CALL update_salary(101); |
SELECT calc_bonus(5000); |
Saklı Fonksiyonların Avantajları:
- SELECT sorgularında yeniden kullanılabilir.
- Kod modülerliğini geliştirin.
- Oluşturulan sütunlarda indekslenebilir.
Dezavantajları:
- Tek bir dönüş değeriyle sınırlıdır.
- İşlemler gerçekleştirilemez veya tablolar doğrudan değiştirilemez.
30) Aradaki temel farklar nelerdir? MySQL ve PostgreSQL Özellikler ve performans açısından?
| Kategoriler | MySQL | PostgreSQL |
|---|---|---|
| Performans | Okuma ağırlıklı iş yüklerinde daha hızlı | Yazma ağırlıklı iş yüklerinde üstün |
| işlemler | InnoDB aracılığıyla ACID uyumlu | MVCC ile tam ACID |
| JSON İşleme | 5.7'den beri işlevsel | Karmaşık sorgular için yerel JSONB |
| eşzamanlılık | Satır düzeyinde kilitleme | Çoklu Sürüm Eşzamanlılık Denetimi (MVCC) |
| uzayabilirlik | ılımlı | Son derece genişletilebilir (özel veri türleri, operatörler) |
Özet: MySQL basitlik, hız ve web ölçeğinde dağıtımlar için optimize edilmiştir. PostgreSQL, aksine, gelişmiş veri bütünlüğü, genişletilebilirlik ve analitik yetenekler sağlar ve bu da onu kurumsal düzeyde ve veri yoğun uygulamalar için popüler hale getirir.
31) Yeni sürümde tanıtılan yeni özellikler nelerdir? MySQL 8.4 ve performansı nasıl artırıyorlar?
MySQL 8.4 (Uzun Vadeli Destek) ölçeklenebilirlik, istikrar ve geliştirici üretkenliğini hedefleyen çeşitli iyileştirmeler getiriyor.
Önemli Geliştirmeler:
- Okuma/Yazma Bölme: Yük dağıtımı için sorguların otomatik olarak kopyalara yönlendirilmesi.
- Performans Şeması Uzantıları: Sorgu gecikmesi ve bekleme olaylarına ilişkin gelişmiş görünürlük.
- Paralel Sorgu Çalıştırma: Analitik sorgular için paralel okumaları destekler.
- Görünmez Endeksler: Endeksler düşürülmeden test edilebilir veya göz ardı edilebilir.
- Kalıcı Optimizasyon İstatistikleri: Yeniden başlatmalar arasında tutarlı sorgu planları sağlar.
Örnek:
ALTER TABLE orders ADD INDEX idx_amount (amount) INVISIBLE;
Bu, kalıcı olarak etkinleştirilmeden önce endeks performans testi yapılmasına olanak tanır; bu da üretim optimizasyonu için büyük bir avantajdır.
32) Nasıl MySQL Bölümlendirme nasıl yapılır ve farklı türleri nelerdir?
Bölümleme Büyük tabloları, bölümler adı verilen daha küçük ve yönetilebilir segmentlere ayırır. Sorgu performansını iyileştirir ve bakımı kolaylaştırır.
| Bölüm Türü | Tanım | Kullanım çantası |
|---|---|---|
| RANGE | Değer aralıklarına göre | Tarih bazlı satış verileri |
| LİSTESİ | Ayrık değerlere dayalı | Ülke veya bölge kodları |
| HASH | Bir anahtarın karmasına dayalı | Yük dengeli kimlikler |
| ANAHTAR | Birincil anahtara dayalı otomatik dağıtım | Ölçekleme için otomatik bölümlendirme |
Örnek:
CREATE TABLE orders ( id INT, order_date DATE ) PARTITION BY RANGE (YEAR(order_date)) ( PARTITION p2023 VALUES LESS THAN (2024), PARTITION pmax VALUES LESS THAN MAXVALUE );
Faydaları: Daha hızlı sorgu yanıtı, daha kolay arşivleme ve daha iyi G/Ç yönetimi.
33) Performans Şeması nedir? MySQLve izleme için nasıl kullanılır?
MKS Performans Şeması yerleşik bir enstrümantasyon çerçevesidir MySQL sorgu yürütme, bellek ve G/Ç kullanımıyla ilgili düşük seviyeli ölçümleri toplamak için.
Kullanım Durumları:
- Yavaş sorguları belirleyin.
- Kilitlenme ve bekleme sorunlarını teşhis edin.
- Bağlantı istatistiklerini izleyin.
Örnek Sorgular:
SELECT * FROM performance_schema.events_statements_summary_by_digest ORDER BY AVG_TIMER_WAIT DESC LIMIT 5;
Faydaları:
- Harici araçlara ihtiyaç duymadan gerçek zamanlı izleme.
- Sunucu davranışına dair ayrıntılı bilgi.
Not: Daha derin analizler için entegre edin MySQL Kurumsal Monitör or Grafana kontrol panelleri.
34) Optimize Edici İpuçlarını Açıklayın MySQL ve ne zaman kullanılmaları gerektiği.
Optimizasyon İpuçları üzerinde manuel kontrol sağlamak MySQLVarsayılan iyileştirici kararları en iyi durumda olmadığında 'nin sorgu yürütme planı.
Örnek:
SELECT /*+ INDEX(employees idx_dept) */ * FROM employees WHERE department_id=5;
Yaygın İpucu Türleri:
USE INDEX, IGNORE INDEX, FORCE INDEXJOIN_ORDER(), SET_VAR()MAX_EXECUTION_TIME(N)
Ne Zaman Kullanılır:
- Yavaş sorguların giderilmesi için.
- Optimizasyon aracı veri dağıtımını yanlış tahmin ettiğinde.
- Geçici bir çözüm olarak, kalıcı bir çözüm olarak değil.
En iyi pratik: Her zaman analiz edin EXPLAIN Uzun vadeli bakım sorunlarını önlemek için ipuçlarını kullanmadan önce planlarınızı gözden geçirin.
35) Sorgu Profillemesi nedir ve performans ayarlamasına nasıl yardımcı olur?
Sorgu Profili Oluşturma G/Ç gecikmesi veya CPU tüketimi gibi darboğazları belirlemek için bir sorgunun yürütme aşamalarını ölçmeye yardımcı olur.
Komutlar:
SET profiling = 1; SELECT * FROM orders WHERE amount > 5000; SHOW PROFILES; SHOW PROFILE FOR QUERY 1;
Çıktı Önemli Noktaları:
- Ayrıştırma süresi
- Optimizasyon zamanı
- Uygulama vakti
- Veri gönderme zamanı
Örnek Kullanım Durumu: Profilleme, veritabanı yöneticilerinin karmaşık analiz işlemleri sırasında yavaş JOIN'leri, optimize edilmemiş dizinleri veya verimsiz sıralama işlemlerini izole etmesine yardımcı olur.
36) Nasıl olabilir? MySQL Yapay zeka ve veri analitiği hatlarına entegre edilebilir mi?
MySQL güçlü bir veri kaynağı olarak hizmet eder makine öğrenimi (ML) ve analitik sistemler.
Entegrasyon genellikle yapılandırılmış verileri analitik çerçevelere çıkaran API'ler veya ETL araçları aracılığıyla gerçekleşir.
Entegrasyon Yöntemleri:
- Python & Pandalar: kullanma
mysql.connectororSQLAlchemyverileri ML modellerine beslemek için. - Apache Spark: Dağıtık hesaplama için JDBC sürücüsünün kullanılması.
- Yapay Zeka Aracıları: MySQLYapılandırılmış şema, LLM'lerin tablo halindeki veriler üzerinde yapılandırılmış akıl yürütme yapmalarına olanak tanır.
Örnek:
import pandas as pd
import mysql.connector
conn = mysql.connector.connect(user='root', password='pw', database='sales')
df = pd.read_sql('SELECT * FROM transactions', conn)
Faydaları: Birleştirir MySQLYapay zekanın analitik gücüyle güvenilirliğini artırarak işlemsel ve öngörücü zekayı birleştiriyor.
37) Görünmez Endeksler nedir ve optimizasyon testlerini nasıl desteklerler?
Görünmez Endeksler Veritabanı yöneticilerinin, bir endeks yokmuş gibi sorgu performansını test etmelerine olanak tanır; endeksi gerçekten silmeden.
Örnek:
ALTER TABLE employees ADD INDEX idx_salary (salary) INVISIBLE;
Faydaları:
- Üretimde güvenli endeks testi.
- Bir indeksi düşürmeden önce bağımlılığı değerlendirir.
- VISIBLE kullanılarak anında yeniden etkinleştirilebilir.
Örnek:
ALTER TABLE employees ALTER INDEX idx_salary VISIBLE;
Kullanım Örneği: Dizin kaldırmanın etkisinin belirsiz olduğu veritabanı optimizasyonu veya yeniden düzenleme aşamalarında idealdir.
38) Farklı Yedekleme ve Kurtarma yöntemleri nelerdir? MySQL?
| Yöntem | Tanım | İçin uygun |
|---|---|---|
| mysql dökümü | Mantıksal yedekleri SQL biçiminde dışa aktarır | Küçük ve orta ölçekli veritabanları |
| mysqlpump | mysqldump'ın paralelleştirilmiş sürümü | Büyük veri kümeleri |
| mysqlhotcopy | MyISAM tabloları için fiziksel kopya | Eski sistemler |
| InnoDB sıcak yedekleme | Engellemeyen yedeklemeler alır | Kurumsal kullanım |
| İkili Günlükler | Noktasal kurtarmayı etkinleştirir | Kritik işlem sistemleri |
Örnek Komut:
mysqldump -u root -p mydb > mydb_backup.sql
En iyi pratik: Birleştirmek ikili günlükler Tam kurtarma esnekliği için planlanmış mantıksal yedeklemelerle.
39) Nasıl MySQL Kilitlenmelerle nasıl başa çıkılır ve bunları önlemenin yolları nelerdir?
A çıkmaz İki veya daha fazla işlemin diğerinin ihtiyaç duyduğu kilitleri tutması ve bekleme döngüsü yaratması durumunda ortaya çıkar.
Örnek Senaryo:
- İşlem A kilitleri
ordersve beklercustomers. - İşlem B kilitleri
customersve beklerorders.
Önleme Teknikleri:
- Tablolara tutarlı bir sırayla erişin.
- İşlemleri kısa tutun.
- Uygunsa daha düşük izolasyon seviyeleri kullanın.
Şunu kullanarak izleyin:
SHOW ENGINE INNODB STATUS;
Çözüm: MySQL Döngüyü kırmak için bir işlemi otomatik olarak geri alır. Doğru işlem tasarımı, tekrarları en aza indirir.
40) Aradaki temel farklar nelerdir? MySQL Topluluk Sürümü ve MySQL Kurumsal Sürüm mü?
| Özellikler | Community Edition | kurumsal Sürüm |
|---|---|---|
| Lisans | GPL (Ücretsiz) | Ticari |
| Yedekleme Araçları | Temel (mysqldump) | Gelişmiş (Kurumsal Yedekleme) |
| Güvenlik | Standart şifreleme | TDE, denetim kaydı, güvenlik duvarı |
| İzleme | Manuel | Kurumsal Monitör |
| Destek | Topluluk forumları | Oracle 24 / 7 destek |
Özet:
Community Edition, açık kaynak kodlu geliştiricilere uygunken, Enterprise Edition, uyumluluk, yüksek erişilebilirlik ve resmi destek gerektiren kuruluşlara hitap ediyor.
🔍 Üst MySQL Gerçek Dünya Senaryoları ve Stratejik Yanıtlar İçeren Mülakat Soruları
1) MyISAM ve InnoDB depolama motorları arasındaki farkı açıklayabilir misiniz? MySQL?
Adaydan beklenenler: Görüşmeyi yapan kişi, sizin şu konulardaki anlayışınızı değerlendirmek istiyor: MySQL'nin depolama motorları ve kullanım durumları.
Örnek cevap:
“MyISAM, okuma ağırlıklı işlemler için optimize edilmiş, işlemsel olmayan bir depolama motorudur. InnoDB ise işlemleri, satır düzeyinde kilitlemeyi ve yabancı anahtarları destekler. InnoDB, e-ticaret veya bankacılık sistemleri gibi veri bütünlüğü ve eşzamanlılık gerektiren uygulamalar için idealdir. Ancak MyISAM, okuma hızının işlem güvenliğinden daha kritik olduğu analitik iş yükleri için de uygun olabilir.”
2) Yavaş çalışan bir sorguyu nasıl optimize edersiniz? MySQL?
Adaydan beklenenler: Görüşmeyi yapan kişi sorgu optimizasyon teknikleri ve performans analizi konusunda bilgi arıyor.
Örnek cevap:
"Ben şunu kullanarak başlardım: EXPLAIN nasıl analiz edileceğine dair bir ifade MySQL Sorguyu çalıştırır. Ardından, eksik dizinleri kontrol eder, birleştirmeleri optimize eder ve kullanılan sütunların WHERE or JOIN Koşullar uygun şekilde indekslenir. Ayrıca gereksiz alt sorguları veya joker karakterleri de ararım. Önceki işimde, karmaşık birleştirmeleri yeniden yazarak ve bileşik indeksler ekleyerek sorgu yürütme süresini %70 oranında azalttım.
3) Veritabanı performans sorunuyla karşılaştığınız bir zamanı anlatın.
Adaydan beklenenler: Görüşmeyi yapan kişi sorun giderme becerilerinizi ve pratik deneyiminizi anlamak ister.
Örnek cevap:
"Önceki görevimde, ana raporlama sorgumuz yoğun saatlerde önemli yavaşlamalara neden oluyordu. Sorguyu profilledim, sık filtrelenen bir sütunda eksik bir dizin tespit ettim ve sorgu yapısını optimize ettim. Ayrıca sorgu önbelleğini tanıttım ve innodb_buffer_pool_size Bellek kullanımını iyileştirmek için. Bu değişiklikler, tepki süresini 12 saniyeden 2 saniyenin altına düşürdü."
4) Üretim ortamında veritabanı şeması değişikliklerini nasıl ele alıyorsunuz?
Adaydan beklenenler: Sürüm kontrolü, risk yönetimi ve dağıtım süreçleri hakkındaki anlayışınızı test ediyorlar.
Örnek cevap:
"Şema değişikliklerini, önce bir hazırlık ortamında uygulayarak, regresyon testleri çalıştırarak ve geriye dönük uyumluluğu sağlayarak ele alıyorum. Üretim dağıtımı sırasında, şema geçişlerinin sürüm kontrolü için Liquibase veya Flyway gibi araçlar kullanıyorum. Daha önceki bir görevimde, 500 milyondan fazla satırı etkileyen bir şema yeniden düzenlemesi sırasında kesintiyi önlemek için bir yuvarlanan güncelleme stratejisi uyguladım."
5) Veritabanı yedekleme ve kurtarma için hangi stratejileri kullanıyorsunuz? MySQL?
Adaydan beklenenler: Görüşmeyi yapan kişi, veri bütünlüğüne ve felaket kurtarmaya yönelik yaklaşımınızı görmek istiyor.
Örnek cevap:
"Kullanırım mysqldump daha küçük veritabanları için mysqlpump veya daha büyük, işlemsel yedeklemeler için Percona XtraBackup. Günlük yedeklemeleri otomatikleştiriyor ve bunları doğrulamak için düzenli olarak kurtarma testleri gerçekleştiriyorum. Ayrıca, anlık kurtarma için ikili günlükler oluşturdum. Önceki görevimde, bu stratejiler kritik bir arızadan sonra 45 dakika içinde 1 TB'lık bir veritabanını geri yüklememizi sağladı."
6) Bir veritabanında güvenliği nasıl sağlarsınız? MySQL çevre?
Adaydan beklenenler: Görüşmeyi yapan kişi erişim kontrolü, şifreleme ve denetim konularındaki anlayışınızı kontrol ediyor.
Örnek cevap:
"En az ayrıcalık ilkesini kullanarak başlıyorum MySQL Kullanıcı rolleri ve uzaktan kök erişimini sınırlama. Aktarım halindeki veriler için SSL'i etkinleştiriyor ve hassas sütunlar için AES_ENCRYPT kullanıyorum. Ayrıca düzenli güvenlik denetimleri de yapıyorum. Önceki işimde, yetkisiz sorgu girişimlerini %90 oranında azaltan rol tabanlı erişim politikaları uyguladım.
7) Veritabanı taşıma projesi üzerinde çalıştığınız bir zamanı anlatır mısınız?
Adaydan beklenenler: Planlama, test etme ve problem çözme yaklaşımınızı değerlendirmek istiyorlar.
Örnek cevap:
"Önceki işimde, bir mirası taşıdık MySQL 5.6 veritabanına MySQL 8.0. Bir şema ve uyumluluk denetimi gerçekleştirerek başladım, ardından mysqldump ve pt-online-schema-change Minimum kesinti süresiyle güvenli veri aktarımı için. Ayrıca, veri tutarlılığını doğrulamak için salt okunur testler de gerçekleştirdik. Geçiş, 10 dakikadan kısa bir kesintiyle başarıyla tamamlandı."
8) Bir cihazın sağlığını ve performansını nasıl izlersiniz? MySQL Veritabanı?
Adaydan beklenenler: Görüşmeyi yapan kişi, sorunlar büyümeden önce bunları proaktif olarak tespit edip edemediğinizi görmek ister.
Örnek cevap:
"Ben izliyorum MySQL gibi araçları kullanarak performans MySQL Enterprise Monitor ve Percona Monitoring and Management (PMM)Yavaş sorgu kayıtları, çoğaltma gecikmesi ve kaynak kullanımı gibi ölçümleri takip ediyorum. Ayrıca eşik ihlalleri için uyarılar da yapılandırıyorum. Önceki görevimde, bu proaktif izleme, yoğun trafikli kampanyalar sırasında sorgu artışlarını tespit etmemize ve kesintileri önlememize yardımcı oldu."
9) Eğer çoğaltma arasında bir değişiklik olsaydı hangi adımları atardınız? MySQL sunucular bozuldu mu?
Adaydan beklenenler: Sorun çözme ve çoğaltma sorun giderme yeteneklerinizi değerlendirmek istiyorlar.
Örnek cevap:
"Öncelikle çoğaltma durumunu kontrol etmek için şunu kullanırdım: SHOW SLAVE STATUS Eksik ikili günlükler veya veri tutarsızlıkları gibi hataları tespit etmek için. Gerekirse, sorunlu işlemleri atlar veya ana bilgisayardan yeni bir döküm kullanarak çoğaltmayı yeniden başlatırdım. Önceki bir görevimde, çoğaltma gecikmesini ve kesinti süresini en aza indirmek için özel betiklerle çoğaltma sağlık kontrollerini otomatikleştirdim.
10) Bir tasarımı nasıl tasarlayacağınızı açıklayın MySQL ölçeklenebilirlik için veritabanı.
Adaydan beklenenler: Mimari düşüncenizi ve ölçekleme stratejilerine ilişkin anlayışınızı test ediyorlar.
Örnek cevap:
"Öncelikle bütünlüğü korumak için normalleştirmeyi göz önünde bulundurarak tasarım yapardım, ardından performans için seçici olarak normalleştirmeyi kaldırırdım. Yatay ölçeklenebilirlik için, parçalama uygulardım veya MySQL Grup Çoğaltma. Sık okumaları boşaltmak için Redis gibi önbellek katmanlarından da yararlanırdım. Önceki görevimde, bu tasarım ilkeleri hizmette herhangi bir aksama olmadan günde 100 bin işlemden 5 milyonun üzerine ölçeklenmeyi destekliyordu.
