# Veritabanı ve indeks: tanımlar

> Veritabanı, bir mağazanın ürün, sipariş, müşteri ve yapılandırma gibi tüm bilgilerini tablolar halinde saklayan ve düzenleyen sistemdir. İndeks ise, veritabanının tüm satırları taramadan aradığı satırı bulabilmesi için bu tablolara konulan bir yapıdır.

- Source canonique : [https://allaux.fr/tr/glossaire/base-de-donnees](https://allaux.fr/tr/glossaire/base-de-donnees)
- Langue : TR
- Dernière mise à jour : 2026-09-30

## Mağazanın görünmeyen kalbi

PrestaShop ve WooCommerce, verilerini genellikle MySQL veya MariaDB olmak üzere ilişkisel bir veritabanında saklar. Her bilgi türü, satır ve sütunlardan oluşan ayrı bir tabloda tutulur: bir ürün tablosu, bir sipariş tablosu, bir müşteri tablosu, birbirine kimlikler (ID) aracılığıyla bağlanır. Belirli bir müşterinin tüm siparişlerinin anında bulunmasını sağlayan da bu yapıdır.

Bir e-ticaret satıcısı için veritabanı, sitenin en kritik unsurudur: tema ve eklentiler yeniden kurulabilir, ancak sipariş geçmişi ve ürün sayfaları yalnızca veritabanında bulunur. Bu nedenle ciddi bir yedekleme her zaman dosyalardan ayrı olarak veritabanını da içerir ve yalnızca dosyaların kopyalanması hiçbir zaman çalışan bir mağazayı geri yüklemeye yetmez.

## İndeks, ya da aynı veritabanı neden bazen hızlı bazen yavaş yanıt verir

İndeks, bir kitabın dizini sayesinde kitabı baştan sona okumadan bir sayfayı bulabilmeniz gibi, bir tablodaki aramayı hızlandıran bir yapıdır. İndeks olmadan veritabanı, istenen bilgiyi bulmak için tabloyu satır satır tarar. Örneğin id_product gibi sık aranan bir sütuna konulan bir indeksle ilgili satırlara doğrudan ulaşır. On binlerce üründen oluşan bir katalogda, birkaç saniye süren bir sorgu birkaç milisaniyeye inebilir.

Bu kazanç bedava değildir: her indeks disk alanı kaplar ve veritabanı her satır değişikliğinde onu güncellemek zorunda olduğundan yazma işlemlerini biraz yavaşlatır. Bu yüzden tüm sütunlar değil, sık yapılan aramalarda gerçekten kullanılan sütunlar indekslenir. Doğru sütunlarda indeks eksikliği, büyümüş bir katalogda yavaşlığın klasik bir nedenidir; aşırı indeks ise daha az göze çarpan bir başka nedendir.

## Pratikte

> PrestaShop'ta tablolar ps_ önekini taşır (örneğin ps_product); WordPress ve WooCommerce'de ise önek wp_'dir (örneğin wp_posts) ve kurulum sırasında özelleştirilebilir. Bir yavaşlık teşhisi, sorun yaratan sütuna yönelik bir indeks eklemeden önce en ağır sorguların analiz edilmesiyle başlar.

## FAQ

### Veriler veritabanında doğrudan değiştirilebilir mi?

phpMyAdmin gibi bir araçla mümkündür, ancak tablo yapısı hakkında kesin bilgi olmadan riskli bir işlemdir: yanlış hedeflenmiş bir değişiklik siparişleri bozabilir.

### Veritabanı bir mağazayı bazen neden yavaşlatır?

Büyük bir katalogla birlikte, tablolarda uygun indeksler yoksa veya hiç optimize edilmemişse bazı sorgular yavaşlayabilir.

### Bir tabloda indeks eksikliği olup olmadığı nasıl anlaşılır?

Önce yavaş sorgular belirlenir: PrestaShop'un profiler'ı (_PS_DEBUG_PROFILING_) veya MySQL'in yavaş sorgu günlüğü bunu sağlar. Ne profiler ne de hata ayıklama modu bir sorgunun tablonun tamamını taradığını söyler: bu, sorgunun başına EXPLAIN eklenip type (ALL, tam tarama demektir) ve key (NULL, hiçbir indeks kullanılmadığı anlamına gelir) sütunlarına bakılarak okunur.

### Bir indeks eklemek mağazayı kapatmayı gerektirir mi?

Makul boyuttaki bir tabloda genellikle gerekmez, ancak çok büyük bir tabloda yazma işlemlerini geçici olarak kilitleyebilir: bunu düşük trafikli saatlerde yapmak daha doğrudur.

### Veritabanı, sitenin dosyalarıyla aynı yerde mi barındırılır?

Klasik bir paylaşımlı barındırmada genellikle evet, ancak bazı yapılandırmalar performans amacıyla veritabanı sunucusunu web sunucusundan ayırır.
