ビッグデータの同時実行性の高さの問題を処理する
データベース内
データベース
A
テーブルが 1 つあります
a
その中のデータは
名 姓
A a
このテーブルには何百万ものデータがあります。
問題は次のとおりです
/*前の $name はすでに私によって定義されています*/
$result= "SELECT lastname FROM a WHERE firstname='"。 "'";
$sql_name=mysql_query($result);
$name=mysql_fetch_array($sql_title);
$subject =$name[0];
?>
問題は発生しました
サーバーは、500 個のデータベースを同時に処理するとすぐにハングアップしました。
何か良い解決策はありますか?
-----ソリューションのアイデア----------------------
残念ながら、これは、ハードウェアとオペレーティング システムが高い同時実行性をサポートしていないことが原因です。
PHP だけの観点から現状を変えることはできません
コードの場合:
PHP レベルでは最適化の余地はありません
mysql レベルでは、firstname 列にインデックスを付けるだけです
-----ソリューションのアイデア----------------------
$result= "SELECT lastname FROM a WHERE firstname='".$name."'";
and
$result= "SELECT lastname FROM a WHERE firstname='".$name."' 制限 0,1";
意味が違う!
前者は複数の行をフェッチできることを意味します
後者は、行数に関係なく、最初に見つかった行のみがフェッチされることを意味します
そのための場合は、スピードという名の本来の意図すら歪められる。では、「最適化」とは何を意味するのでしょうか?
------解決策----------------------
テーブルを水平または垂直に分割するか、マルチデータベースの圧力共有を通じて。
-----ソリューションのアイデア----------------------
データベースへの分岐を意味します見てください。 。 。
md5(firstname lastname)、異なるデータベーステーブルにハッシュされます。