我從一個查詢結果中獲得45000個值,並且需要使用此值進行第二次查詢,但由於數組的大小較大,所以其花費的時間長於30秒執行因此讓錯誤:在MySQL中傳遞5,000到100,000個值的正確方法WHERE子句
Error: Maximum execution time of 30 seconds exceeded
是否有任何其他的方式來快速做這個數據庫中的數據計算,或者我應該計算數據並將其保存在另一個表隨時
查詢顯示:
$query = $em->createQuery('SELECT DISTINCT(u.username) as mobile FROM sessionTable u WHERE u.accesspoint IN (?1) ');
$query->setParameter(1, $accesspoint);
$result = $query->getResult();
$count = count($result);
$i = 0;
$numbers = array();
foreach ($result as $value) {
$numbers[$i] = $value['mobile'];
$i++;
}
dump(count($numbers)); //----> Output is 48567 --successful
$Users = $this->getDoctrine()
->getRepository('AcmeDataBundle:User')
->findByNumber($numbers);
----Error Occurs Here------
dump(count($Users));
die();
我使用symfony的2.0框架,原則2.0
UPDATE: 考慮我在同一個數據庫5桌, 即。 1-用戶2- Google資料3- Facebook的數據4- yahooData -5-會話
當用戶登錄到我的申請中,我收集來自一個或多個社交簡檔數據有性別的信息,並保存在那個特定的表
現在我想計算所有用戶使用多個會話的男性:女性比例,
對於這種情況,從多個表格計算男性:女性比例太困難。 我覺得有一個解決方案,如果我直接在會話表中添加性別列,但使用FK或其他任何方式還有其他更好的方法嗎?
將數組拆分成塊並執行多個查詢。 – user4035
或嘗試'ini_set('max_execution_time',300); // 300秒= 5分鐘' – devpro
注意到您的更新,但很遺憾地說,這使得問題不清楚,而不是更清楚。如果您不介意,請添加show create table output和幾行示例數據 – e4c5