Как работать с большой БД?
Есть таблица в БД с данными (12 000 строк), как правильно работать с таблицами такого объема? Элементарное получение данных выдает ошибку о нехватки памяти.
выдает ошибку
Это смотря чем открывать.
Это смотря чем открывать.
Вот так примерно
$this->model_content->limit(0)->getContentItems()
120000 — это сущая ерунда. У меня таблицы контента по 1300000 и комментариев миллион. И все вертится и мгновенно открывается.Есть таблица в БД с данными (12 000 строк), как правильно работать с таблицами такого объема? Элементарное получение данных выдает ошибку о нехватки памяти.
Были тормоза по моей же некомпетентности, но Fuze помог разобраться в вопросе:
instantcms.ru/forum/thread28414-2.html#282329
Речь идет о второй, если я правильно прочитал ветку)на какой версии cms?
На странице с записью типа контента есть список имен и фамилий (в дальнейшем ИФ) перечисленных через запятую, мне нужно чтобы ИФ становились ссылками, на соответствующие страницы в другом типе контента. Во-втором типе 12000 записей (и будет увеличиваться примерно до 150 000). В хуке я получаю всю эту таблицу get-запросом, и в цикле функцией str_ireplace меняю то, что мне необходимо. Но уже на этапе получения всей таблицы время загрузки страницы меняется например с 0.0275 на 0.3069.
Подскажите, если какой-то другой способ сделать нужное?
Если есть дополнительные вопросы задавайте!
Потому что на странице много имен и их нужно все проверить на соответствие в этой большой таблице!а зачем вам получать всю таблицу? с какой целью то?
просто Вам из базы нужно получать нужные перемены, если есть фио на странице, значит их можно запихать в переменную(пусть даже массива) и потом сделать поиск массива в базе, потом и выводите нужные вам ссылки.
SELECT * FROM FIOLINK WHERE fio IN ('$fiotext')";
Запрос всего один, получаю весь список и сохраняю в переменную!т.е. вы генерируете по 1400 запросов в базу? сверяя все фио или что?
Попробую, позже отпишусь!SELECT * FROM FIOLINK WHERE fio IN ('$fiotext')";
SELECT * FROM FIOLINK WHERE fio IN ('$fiotext')";
Сделал такой запрос, возвращает только первое совпадение