Ne bir profil, bir dizi ya da bir isim için en iyisidir?

7 Cevap php

Kullanıcı profili çeşit var Çoğu site böyle bir şey yapacak ya:

profile.php?u=123445

ya da başka:

profile.php?u=jason.Davis

Ben merak ediyorum, bu bir profil kaydını aramak için bir numara kullanarak vs PHP / MySQL ile bir profil arama için bir ad kullanmak daha yavaş olurdu?

7 Cevap

Bir dize arama gerçekten muhtemelen muhtemelen her durumda bir sayısal bir daha yavaş olacaktır. Ama farkı fark asla çok küçük. Eğer bir kullanıcı really sayıda olması kadar değildi.

Ama SO kontrol: Her ikisi de yok.

http://stackoverflow.com/users/187606/pekka

Hızlı veritabanı erişimi için yanan numara.

Güzel görünüyor, ve arama motoru görünürlük için isim.

Iki isim, kimlik kaydını aramak için kullanılan budur, çünkü hiçbir çatışmalar.

Ben bu iki dünyanın ve optimum en iyi olduğunu düşünüyorum.

Olsa da, yeniden URL gerektirir.

Adı daha okunabilir ve hata ayıklama daha kolay olacak, ancak isimler ör (ben bu aslında birleşme kullanılan bir kelime olduğuna inanıyorum) bir uniqifier güçlendirilecek gerekir böylece benzersiz olmasını garanti edilmez adının sonuna basamak ekler.

Ben bir isim kullanarak görmek temel sorun arama hızı değil, ancak Omaha, Nebraska ve Perth, Batı Avustralya başka Jason Davis Jason Davis sahip olamayacağı bir gerçektir.

Tüm yollarla dünya görebilirsiniz ama, teklik sağlamak için her şeyi adını kullanın, ben bir tamsayı kimliği kullanmak istiyorsunuz. Bu sıra sıra veritabanı sorguları hızlandırmak olabilir ama bu benim için ikincil bir endişe olurdu. Bu bir dize kullanarak uygulama için çok fazla angst neden olur şüpheli.

Bir DB dizin kullanmak, bu fark yavaş olmamalıdır. İki Jason Davises varsa ne olur? Eğer benzersizliğini garanti çünkü UIDs güzel.

İkisi de yanlış. Sen profile.php parametre olarak u = 12345 verilmiş olsun istemiyorum. Siz kullanıcı 12345 profilini almak istiyorum. So / profile/12345 kullanın.

REST hakkında bir şeyler okumak, o serin :)

Yavaş?

Eğer test olsaydım, sen bu konuda rahatsız değer olması için yeterli fark olmadığını öğrendim olurdu. Eğer performansı hakkında endişeleriniz varsa o zaman bu sizi endişe son şey olmalıdır.

C.

Adı veritabanında bir anahtar ise, arama süreleri çok farklı olmamalı ve bir ad kullanarak size güzel görünümlü URL'leri verecek, bu yüzden adlarını kullanarak için gidiş öneririz.