Nasıl hızlı bir PHP + MySQL ile DBS geçiyor?

2 Cevap php

Ben bir sitenin her sayfasının her çağrısı üzerine 2 veritabanları arasında geçiş olacak nasıl yavaş merak ediyorum. Site bazı genel ayarları için kullanılan bir "global" veri tabanı ile birlikte, farklı müşteriler için birçok farklı veri tabanları vardır. Bu, veritabanına bağlanmak, bir DB seçin, bir sorgu veya 2 yapmak, başka bir DB geçmek ve sonra sayfa nesil tamamlamak için varsa her komut yürütülmesi için eklenen çok zaman olacağını merak ediyorum. Ben de her DB tekrarlanan veri var, ben sadece (yükseltirken yalnızca değişecek) bunu mantain gerekir.

Yani, sonunda, ne kadar hızlı mysql_select_db()?

Her sayfada özellikle bu yana, Edit: Evet, ben ayrı ayrı DB bağlanmak olabilir, ancak bu genellikle herhangi bir PHP script yavaş parçası olarak, ben bunu önlemek istiyorum. (PHP adres çözünürlük çeşit yapmak zorunda çünkü yavaş (bir IP veya host adı olabilir) ve sonra MySQL giriş parametreleri iki kere kontrol etmek için vardır.)

2 Cevap

Her iki veritabanları aynı makine üzerinde olduğunu varsayarsak, mysql_select_db yapmak gerekmez. Sadece sorgular veritabanı belirtebilirsiniz. Örneğin;

SELECT * FROM db1.table1;

Siz açık iki bağlantıları da olabilir ve connect çağrı döndü ve veritabanlarını seçin ve tüm aramaları içine geçmek için bu iki nesne kullanıyoruz DB nesnesini kullanın. Veritabanı bağlantısı sadece belgeleri kontrol, mysql db çağrıların tüm isteğe bağlı bir parametredir.

İki oldukça farklı sorular soruyorsun.

  1. Birden fazla veritabanı örneklerine bağlanma

  2. Varsayılan veritabanı şemaları anahtarlama.

MySQL oldukça hızlı bağlantı kurulum süresi olduğu bilinmektedir; iki mysql_connect(), farklı sunuculara çağrıları yapma birden ancak daha pahalıdır.

Çağrı mysql_select_db() USE deyimi tam olarak aynıdır ve sadece niteliksiz tablo başvuruları için varsayılan veritabanı şemasını değiştirir.

MySQL etrafında dönem 'Veritabanı' nın kullanımı ile dikkatli olun: iki farklı anlamları vardır.