Как работать с большой БД? 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 232
Всем привет!

Есть таблица в БД с данными (12 000 строк), как правильно работать с таблицами такого объема? Элементарное получение данных выдает ошибку о нехватки памяти.
Посетитель
small user social cms
Медаль
Сообщений: 279
Вадим Нарочный:
выдает ошибку

Это смотря чем открывать.
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 232
ХурумБурум:
Это смотря чем открывать.

Вот так примерно
Код PHP:
  1. $this->model_content->limit(0)->getContentItems()
Посетитель
small user social cms
Медаль
Сообщений: 232
Получил данные через простой get(), проблем не возникло zst
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2642
Вадим Нарочный:
Есть таблица в БД с данными (12 000 строк), как правильно работать с таблицами такого объема? Элементарное получение данных выдает ошибку о нехватки памяти.
120000 - это сущая ерунда. У меня таблицы контента по 1300000 и комментариев миллион. И все вертится и мгновенно открывается.
Были тормоза по моей же некомпетентности, но Fuze помог разобраться в вопросе:
http://instantcms.ru/forum/thread28414-2.html#282329
Посетитель
no avatar
Медаль
Сообщений: 254
Ris, на какой версии cms?
Посетитель
small user social cms
Медаль
Сообщений: 232
@ivanpolyakov:
на какой версии cms?
Речь идет о второй, если я правильно прочитал ветку)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3539
@ivanpolyakov, вторая ветка
Посетитель
small user social cms
Медаль
Сообщений: 232
И всё таки я думаю что как-то я не оптимизированно делаю это! Давайте вкратце расскажу то, что хочу сделать!

На странице с записью типа контента есть список имен и фамилий (в дальнейшем ИФ) перечисленных через запятую, мне нужно чтобы ИФ становились ссылками, на соответствующие страницы в другом типе контента. Во-втором типе 12000 записей (и будет увеличиваться примерно до 150 000). В хуке я получаю всю эту таблицу get-запросом, и в цикле функцией str_ireplace меняю то, что мне необходимо. Но уже на этапе получения всей таблицы время загрузки страницы меняется например с 0.0275 на 0.3069.

Подскажите, если какой-то другой способ сделать нужное?
Если есть дополнительные вопросы задавайте!
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1356
Вадим Нарочный, а зачем вам получать всю таблицу? с какой целью то?
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Посетитель
small user social cms
Медаль
Сообщений: 232
kirkr:
а зачем вам получать всю таблицу? с какой целью то?
Потому что на странице много имен и их нужно все проверить на соответствие в этой большой таблице!
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1356
Вадим Нарочный, т.е. вы генерируете по 1400 запросов в базу? сверяя все фио или что?
просто Вам из базы нужно получать нужные перемены, если есть фио на странице, значит их можно запихать в переменную(пусть даже массива) и потом сделать поиск массива в базе, потом и выводите нужные вам ссылки.
SELECT * FROM FIOLINK WHERE fio IN ('$fiotext')";
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Посетитель
small user social cms
Медаль
Сообщений: 232
kirkr:
т.е. вы генерируете по 1400 запросов в базу? сверяя все фио или что?
Запрос всего один, получаю весь список и сохраняю в переменную!

kirkr:
SELECT * FROM FIOLINK WHERE fio IN ('$fiotext')";
Попробую, позже отпишусь!
Посетитель
small user social cms
Медаль
Сообщений: 232
kirkr:
SELECT * FROM FIOLINK WHERE fio IN ('$fiotext')";

Сделал такой запрос, возвращает только первое совпадение
Посетитель
small user social cms
Медаль
Сообщений: 232
Всё, нашел ошибку, там ещё пробел был после запятой. Сейчас все докручу и отпишусь!
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: