mysql göstermek tablo / sütun - Performans soru

4 Cevap php

Ben temel bir PHP / MySQL CMS üzerinde çalışıyor ve performansı ile ilgili bir kaç soru var ediyorum.

Ön ucundan bir blog sayfası (veya başka sıralanabilir verileri) görüntülerken, ben basit bir 'tür' değişken mesaj herhangi bir sütuna göre sıralanmasını sağlayan, sorgu dizesi ilave izin vermek istiyorum. Açıkçası ben sorgu dizesi gelen anything kabul ve sütun tabloda var emin olmak gerekir olamaz.

Şu anda ben kullanıyorum

SHOW TABLES;

sonra tablo adlarının dizi döngü ve performans, veritabanındaki tüm tabloları bir listesini almak için

SHOW COLUMNS;

her biri.

Benim derdim CMS buraya isabet bir performans alabilir olmasıdır. Ben tablo adlarının bir statik dizi kullanarak düşündüm ama bir eklenti sistemi uygulayan kulüpler olarak bu esnek tutmak gerekir.

Herkes ben bu daha kısa tutmak konusunda herhangi bir öneriniz var mı?

Teşekkür

4 Cevap

Eğer mysql 5 + kullanıyorsanız, o zaman görev için veritabanı information_schema yararlı bulmaktadırlar olacak. Bu veritabanı, tablolar, sütunlar, basit bir SQL sorguları tarafından referans bilgilere erişebilirsiniz. Masada belirli bir sütun varsa Örneğin bulabilirsiniz:

SELECT count(*) from COLUMNS 
WHERE 
    TABLE_SCHEMA='your_database_name' AND
    TABLE_NAME='your_table' AND
    COLUMN_NAME='your_column';

Burada belirli bir sütun var olan tablolara listesi:

SELECT TABLE_SCHEMA, TABLE_NAME from COLUMNS WHERE COLUMN_NAME='your_column';

Sen ön tablosunu sorgulamak ve önbellek tabakası (yani memcache veya APC) sütunları saklamak. Daha sonra sonsuz için dosyanın üzerine sona zamanı ayarlayın ve sadece silin ve bir eklenti yeni eklenen olmuştur yeniden oluşturmak önbellek dosyası, güncellenen, vb olabilir

Ben iyi bahis zaten dosyada vb göster tablolardan elde ur bütün bu şeyler koymak ve sadece bunun yerine her zaman ki çalışan, bunu dahil sanırım. Veya proje geliştirme eğer hala önbelleğe çeşit uygulamak ve u alanlar değişecek düşünüyorum.

Eğer gerçek sorgu yapmadan önce, şu anda iki db vuruyorlar beri, sadece bir try{} bloğunda gerçek sorgu sarma düşünebilirsiniz. Sonra sorgu sadece 3 yerine bir ameliyat yaptık. Ve sorgu başarısız olursa, yine yerine sadece potansiyel olarak iki bir sorgu harcadığım çalışıyor eğer.

(Her zamanki gibi!) Önemli bir uyarı herhangi bir kullanıcı girişi bu yapmadan önce temizlenmelidir olmasıdır.