Попробывал соединиться с 2 базами, находящимися на 1 сервере. С первой базой соединение проходит, со второй не проходит. Т.е. в параметрах pg_connect() указаны идентичные данные, за исключением dbname.
Как правильно сделать соединение с двумя базами сразу, с учетом, что они расположены на одном сервере, имеют одного пользователя для входа.
хочу в nginx прописать выполнение php не через порт, а напрямую. Но при установке в Debian через пакеты нет никаких файлов, которые позволяют работать напрямую. Как в таком случае устанавливать PHP? Или что вообще сделать?
Спасибо.
//upd
упс. Отредактировал, теперь все корректно. Тяжелый день(
SAD, Да, это две отдельные таблицы с одинаковыми столбцами. Они были разбиты для того, чтобы не пришлось бегать по большой базе.
В таблице 'a' записи id с 1 по 300000, в 'b' с 300001 по 600000.
FROM base.schema.table1 AS a, base.schema.table2 AS b
WHERE b.id IN(350000, 450000)AND a.id IN(789, 450);
Он выдает 4 строки! Где id=789 два раза и 450 два раза. А из b.id ничего не выводит. В чем проблема? Можно выводить просто через b.id='350000' AND b.id='450000', но этот способ значительно медленней, чем IN (число, число). Проверено миллион раз)))
База PostgreSQL. Подскажите в чем собака зарыта? )
Хранимые данные в постгре - это id(serial), varchar и text. Текст.
Сейчас система такая:
Сфинкс ищет по индексу, составленному по постгре и выдает список ID. Потом делается запрос в постгре и цепляются все данные по этим айди. Так вот запросы по списку в постгре пробегают миллионы строк каждый раз. Уходит по 2-4 секунды. Возможно, вы скажете - нормально, но нет, у конкурентов быстрее работает.
Берите редиску.
Что значит оператива кончится? Там же в конфиге лимит устанавливается, после которого он принудительно сливает на диск.
Да-да, устанавливается. Я о том, что 300 млн. записей в Postgre весят около 3 Tb, то не трудно посчитать, что серверов с оперативной памятью потребуется много)) и плюс база растет. (Добавление)
EuGen пишет:
antobra пишет:
300 млн. записей
Это при корректной конфигурации будет очень быстро работать и на MySQL (скорее всего - не берусь утверждать 100%, не видя ни приложения ни бизнес-логики). Благо возможности позволяют.
Я бы рекомендовал использовать связку, а не заменять полностью.
По сравнению с другими ресурсами - да, 300 млн - это маленькая цифра. Но никто ж не знает, сколько приходится обрабатывать SELECT запросов)) (оооч много) Кэширование есть на все результаты, но результаты редко повторяются и поэтому кэш не очень эффективен. Поэтому стоит вопрос о nosql, как о быстром выплевывании результатов.
Моему коллеге нужен совет. Подскажите кто имел опыт работы с такими базами. Существует проект с применением postgresql, база имеет размер 3 Tb и в ней около 300 млн. строк (в общем количестве).
Скорость работы постгре стала жуткая. Размер не маленький и все задачи сильно тормозят сервера (их несколько). В связи с этим есть идея по смене базы. Есть два варианта. Почему два? Redis - знаком и легкоиспользуемый, а hbase, т.к. его аналог использует гугл и вроде качество.
hbase - аналог используется у гугл с их объемами данных.
redis - знакомая система и вроде как говорят, что довольно шустрая на выдачу и запись.
Вопрос...
Что лучше использовать при таких размерах базы, если она может увеличиться в ближайшие годы до 10 Tb? В огромном приоритете - скорость выдачи. Запись не в приоритете, т.к. осуществляется в определенное время и вовсе не нагружает базу.
Читал, что hbase способен обрабатывать до 1 млн. запроса в сек., redis же до 100 тысяч запросов на запись и в половину от этого меньше на чтение.
Коллеге и мне симпатичен Redis, он проще, удобная и простая репликация, но есть главный минус - если закончится оперативная память, то значит пора добавлять сервер в кластер. В hbase нравится, что аналог применяет крупнейший сайт - гугл, т.е. говорит о качестве, но танцы с бубнами при установке и настройки кластера пугают и пишут, что скорость выдачи медленней, чем у Redis (что опровергает предыдущие данные об обработки в 1 млн. запросов).
Извиняюсь за сумбурный текст, но идея понятна. В вышеописанном случае, что лучше применить? Redis vs HBase (Добавление)
Да и, то, что hbase распределенная, а Redis - нет, мы в курсе. Это не является проблемой в нашем случае )))
Существуют ли какие-то решения если нужно только добавить текст к полю. Допустим, если необходимо к значению 5 прибавить 2, то это легко сделать через UPDATE, указав SET lala=lala+2 и сумма в базе станет 7. А как быть если есть в поле текст " Привет мир " и мне нужно добавить в это поле " Как дела? ", чтобы стало "Привет мир, как дела". Существует способ, что изымаешь строку из базы, добавляешь через php и апдейтом заменяешь поле. Но хотелось бы узнать, возможно есть другие решения?
Думаю, что все знают, что выводит данный запрос. А как применить команду, чтобы запрос подобрал каждую (допустим) третью строку при условии, что id могут быть разные и не привяжешь как
Это довольно старый и распространенный скрипт в интернете. Страничку с UTF-8 он забирает без проблем, но если кодировка win-1251, то символы становятся не понятными. Как можно решить проблемку?