У меня есть таблица MySQL с более чем 4 миллионами данных; проблема в том, что некоторые запросы работают, а некоторые не зависят от поискового запроса, если поисковый запрос имеет большой объем данных в таблице, чем я получаю следующую ошибку:
Fatal error: Allowed memory size of 1048576000 bytes exhausted (tried to allocate 75 bytes) in /home/****/public_html/Zend/Db/Statement/Pdo.php on line 290
В настоящее время у меня включен кеш Zend Framework для метаданных, у меня есть индекс для всех полей этой таблицы. Сайт работает на выделенном сервере с 2 ГБ оперативной памяти.
Я также установил предел памяти: ini_set ("memory_limit", "1000M");
Какие-нибудь другие вещи, которые я могу оптимизировать?
Вот те типы запросов, которые я сейчас использую:
$do = $this->select()
->where('branche LIKE ?','%'.mysql_escape_string($branche).'%')
->order('premium DESC');
}
//For name
if(empty($branche) && empty($plz))
{
$do = $this->select("MATCH(`name`) AGAINST ('{$theString}') AS score")
->where('MATCH(`name`) AGAINST( ? IN BOOLEAN MODE)', $theString)
->order('premium DESC, score');
}
И несколько других, но они почти одинаковы.
С наилучшими пожеланиями
// LE
ZEND_PAGINATOR CODE
$d = $firmen->doSearch($finalType,$theKeyword,$thePLZ,$theBranche,false,false,false,$theOrder);
if ($d !== false) {
$paginator = Zend_Paginator::factory($d);
$paginator->setItemCountPerPage(5)
->setPageRange(10)
->setCurrentPageNumber($pag);
$this->view->data = $paginator;
// MYSQL ОБЪЯСНИТЬ РЕЗУЛЬТАТЫ
mysql> EXPLAIN select * from `wirtscha_ksw`.`firmen` WHERE `name` LIKE '%gmbh%';ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 32911
Current database: *** NONE ***
+----+-------------+--------+------+---------------+------+---------+------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+------+---------------+------+---------+------+---------+-------------+
| 1 | SIMPLE | firmen | ALL | NULL | NULL | NULL | NULL | 3749155 | Using where |
+----+-------------+--------+------+---------------+------+---------+------+---------+- ------------+
1 row in set (0.03 sec