работ с двумя БД

monk

Новичок
работ с двумя БД

На хостинге стоит ограничение на количество запросов к БД в час. Мне придется переделать работу скрипта на две базы, чтобы понизить кол-во запросов к одной. Мне нужно перенести одну таблицу на другую бд. Тогда придется сделать что-то вроде:
соединение с 1бд выбор данных из ней и закрытие соединения, соед. со 2бд...закрытие, соед с 1бд...закрытие, соед 2бд....закр. Стоит ли так делать и сть ли другие способы?
 

vadim

Guest
monk
Проблема: если одни и теже данные хранятся, то надо следить за тем, чтобы данные в разных базах тоже были одинаковые. В MySQL есть для этого технология Репликации, но я не знаю, можно ли её с обычным хостингом использовать, так как у нас свой сервер
 

Кром

Новичок
> Стоит ли так делать и сть ли другие способы?

Смени хостера.
 

monk

Новичок
Ну а если делать так, сильно ли это повлияет на скорость выполнения скрипта. Да и соединение с БД это запрос к ней или нет?
 

Кром

Новичок
>Ну а если делать так, сильно ли это повлияет на скорость выполнения скрипта.

На скорость это не повлияет.

>Да и соединение с БД это запрос к ней или нет?

Соединение - это соединение, а запрос это - запрос. Понятно что вещи разные. Выбор базы это - запрос.
 

monk

Новичок
А можно к примеру вначале скрипта сделать два соединения с разн. БД , а в запросах select и др. просто указывать нужное соединение?
 

Кром

Новичок
Конечно можно.

-~{}~ 16.03.06 23:05:

Но хостера лучше все таки сменить. :)
 

monk

Новичок
Автор оригинала: Кром
Конечно можно.
Ясно, спасибо!
Но хостера лучше все таки сменить. :)
Так большенство хостеров делают какие-либо ограничения на бд или на что-либо еще. Хостинг сам по себе большие нагрузки держит, только вот БД ограничивает. Все из-за мега-скрипта чата и около сотни человек в онлайн... Остается только сервер...дорого.
хост: sweb.ru / vip lite

-~{}~ 17.03.06 00:33:

Появился вопрос. Запрос к БД это: mysql_select_db($DB_NAME);
, а select * from table или update table это тоже запросы?

-~{}~ 17.03.06 00:39:

Ведь если
>Выбор базы это - запрос.
тогда select * table, updete, delete и т.п. это не выбор базы => это не запрос
 

Кром

Новичок
>Все из-за мега-скрипта чата и около сотни человек в онлайн...

Возможно тебе имеет смысл подумать об оптимизации.

А тексты сообщений имеет смысл писать в файл и при выборках использовать fseek. Базу в этом случае можно вообще не дергать.

>а select * from table или update table это тоже запросы?
Конечно запросы.

>тогда select * table, updete, delete и т.п. это не выбор базы => это не запрос
А что это если не запрос? Ответ? :)
 

monk

Новичок
>Возможно тебе имеет смысл подумать об оптимизации.

кое-что оптимизировал, но в основном каждый запрос нужный, даже нечего оптимизировать

остается только:

>А тексты сообщений имеет смысл писать в файл и при выборках использовать fseek. Базу в этом случае можно вообще не дергать.

но это уж точно увеличит время выполнения скрипта.

>Конечно запросы.
>А что это если не запрос? Ответ? :)

Ясно. Это хорошо, эти запросы и буду распределять на две БД

Спасибо за помощь!
 

Кром

Новичок
>но это уж точно увеличит время выполнения скрипта.

В большинстве случаев, время выполнения уменьшается. :)
 

monk

Новичок
>В большинстве случаев, время выполнения уменьшается. :)

во как. подумаю над этим вариантом. Но все-же такой способ редко используют. Думаю он неудобен и сложен (объемен) в написании.
 

Кром

Новичок
>Но все-же такой способ редко используют.

monk, я тебя умоляю. Если это редко используют, то только потому, что большинство программистов редко думают.
 

camka

не самка
monk
Используй префиксы имени базы перед именем таблиц в sql запросах, и не надо будет менять базу данных постоянно.

[sql]
select baza1.table1.field1, baza2.table2.field2 from baza1.table1, baza2.table2.
[/sql]

Хотя, такое не пройдет, если для каждой базы свой пользователь, или базы не на одном сервере.
 
Сверху