2011-12-27 9 views
0

私はこのようなものを使用します。私はお願いしたいと思いますどのような大文字のクエリでMySQLサーバーのオーバーロードが発生しましたか?

$url_title = mysql_real_escape_string($_GET['title']); 
    $sql = dbquery("SELECT * FROM `videos` WHERE `post_name` = '$url_title' LIMIT 0, 1"); 

/* or this old one 

    $local_id = ($_GET['id']; 
    $sql = dbquery("SELECT * FROM `videos` WHERE `id` = '$local_id' LIMIT 0, 1"); 

// for urls like : 
// example.com/video/music/red-hot-chili-peppers-californication-564/ 

*/ 

    $num_rows = mysql_num_rows($sql); 
    if ($num_rows == "0"){die();} 

    while($row = mysql_fetch_array($sql)){ 
    $local_id = $row["id"]; // PRIMARY KEY ; auto increment 
    $video_id = $row["youtube_id"]; // Unique 
    $title = $row["name"]; // Unique 
    $name_slug = $row["name_slug"]; // Unique 
    // some more code 
    } 

// and this one for urls like : 
// example.com/video/music/red-hot-chili-peppers-californication/ 

がある:私は、例えば、「赤・ホット・チリ・ピーマン・カリフォルニ」を照会するとき

が大きく、サーバーの負荷を持っている、それは正常です"564"の代わりにDBで?

int型の$ idを除いて、すべてのフィールドの型はvarcharです。

+1

あなたのテーブルにはどのようなインデックスがありますか? –

+0

私は投稿を編集しました。 – m3tsys

+0

しかし、テーブルにはどのようなインデックスがありますか?タイトル欄にインデックスがない場合、それはかなり遅くなります –

答えて

2

ためtypeの設定方法によって異なります。文字列を比較するよりも数値を比較する方が簡単です。すべてのプログラミング言語で。

+0

ok、私はそれについて考えました...しかし、どのくらいの違いが違いますか? – m3tsys

+0

何かをテストする必要があります。ハードウェア、テーブルエンジン、テーブルのサイズなどによって異なります。 – TimWolla

1

すべては、私はこれが正常であると仮定しますが、MySQLの列

+0

それはあなたが私に尋ねたものなら、タイプはvarcharです。何か他のものを使うべきですか? – m3tsys

関連する問題