Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

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.

Sorunumu anlatayım Mesaj gönderin

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.

Sıkça sorulan sorular

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.

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

contexte
plateforme (facultatif)
question (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.