首頁 > 後端開發 > php教程 > 处理大数据高并发有关问题

处理大数据高并发有关问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-13 12:15:20
原創
991 人瀏覽過

处理大数据高并发问题
在数据库里面
database  
   A
  表有1张
   a
 里面数据为
 firstname   lastname 
  A          a
   这样表里面有百万级的数据。
于是问题就来了
 /*前面的$name已经是我已经定义了的*/
$result= "SELECT lastname FROM  a WHERE firstname='".$name."'";  
$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."'";

$result= "SELECT lastname FROM  a WHERE firstname='".$name."' limit 0,1";
意义是不同的!

前者表示可能取出多行
后者表示无论多少行都只取遇到的第一行

如果为了所谓的速度,连本意都扭曲了。那“优化”有什么意义?
------解决思路----------------------
通过横向或纵向分表,或者通过多数据库分压的方式。

------解决思路----------------------
我表示分库分表吧。。。
md5(firstname+lastname),散列到不同的数据库表中。

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
javascript - js正規符合特定字串
來自於 1970-01-01 08:00:00
0
0
0
為什麼說非物件呼叫成員函數fetch()
來自於 1970-01-01 08:00:00
0
0
0
資料庫設定檔必須要用二維數組
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板