DATEwise kayıtları büyük MySQL veritabanı getiriliyor / sıralama

2 Cevap php

I have a separate table for every day's data which is basically webstats type : keywords, visits, duration, IP, sale, etc (maybe 100 bytes total per record) Each table will have around a couple of million records.

Ne yapmam gereken kullanıcı / admin farklı tarih dönemleri için raporlar görüntülemek VE belirli hesaplanan değerlere göre sınıflandırılmaktadır böylece bir web yönetici olması. Örneğin, kullanıcı SATILIK / ZİYARET olanlar bu ayın 12'sinde, azalan geçen ayın 15'inde için sonuçlar isteyebilirsiniz.

Yönetici / kullanıcı sadece bir seferde (diyelim ki) en iyi 200 kayıtları görüntülemek için gereken ve muhtemelen herhangi bir oturumda bir kaç yüz toplamından daha fazla görmek olmaz

Çünkü söz keyfi tarih dönemi, ben her kayıt için ilgili sütunları özetlemek için ve sadece o seçim yapılabilir gerekir.

Benim soru gerçek zamanlı raporları olması mümkün olacak ya da (günün veri sonra güncellendi takıldıktan - - eğer hiç tabloları nadiren değil) çok yavaş olup olmayacağıdır

Böyle bir senaryo daha iyi dizinler veya tablescans takılır?

Ve aynı zamanda, tüm tarihler için büyük bir tablo (katılır neredeyse hiç yoktur) her tarih için ayrı tablolar olan daha iyi olacağını

şimdiden teşekkürler!

2 Cevap

Her gün verileri için ayrı bir tablo ile, bir ay boyunca özetleyen 30 küsur tablo her birinde aynı analizi yapıyor dahil etmek için gidiyor. Bir yıl içinde, 365 ya da öylesine tablolar analizi yapmak zorunda kalacaktır. Bu bir kabus olacak.

Bu neredeyse kesinlikle tablo çok sayıda daha sağlıklı endeksli tek bir tablo için daha iyi olurdu. Bazı DBMS parçalanmış tablolarını desteklemez - MySQL yaparsa, tarihe tek bir büyük bir tablo fragmanı. Ben normal bir sorgu bir ay veya daha az olan ve çapraz ay sınırlarını değil, özellikle eğer, ay fragmanı eğimli olacak. (Iki ay içerse bile, terbiyeli fragmanı ortadan kaldırılması ile, sorgu motoru verilerin çoğu okumak zorunda kalmazsınız; iki ay boyunca sadece iki fragmanları bile, paralel olarak bu taramaları yapmak mümkün olabilir - yine. , DBMS bağlı.)

Endeksli aramalarını yapmak daha Bazen, bir tablonun sıralı taramalar yapmak için daha hızlı - sadece sorgu planı içerir çünkü bir tablo otomatik olarak kötü bir performans olacağını tarama düşünmeyin.

Sen farklı bir yaklaşım denemek isteyebilirsiniz. Ben Splunk sizin için çalışacağını düşünüyorum. Bunun için, onlar bile bu sitede reklam yapmak tasarlanmıştır. Onlar deneyebilirsiniz ücretsiz bir sürümü var.