Как справиться с множественными подключениями к БД - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Sun, 12 Jan 2025 02:45:34 +0300 25. <strong>dima.london</strong>, cколько там тебе серверов то уже нужно? 8-10? https://visavi.net/topics/25896/437449 Как справиться с множественными подключениями к БД Алексей Mon, 24 Oct 2011 14:23:58 +0400 Сообщения https://visavi.net/topics/25896/437449 &gt; надеясь что он не обидится=)<br> <br> зачем тогда кластер? <img src="https://visavi.net/uploads/stickers/D.gif" alt="D"> просто при перегрузке серверов выдаём табличку с &quot;техработами&quot; и надеемся что он не обидится <img src="https://visavi.net/uploads/stickers/D.gif" alt="D"> https://visavi.net/topics/25896/437424 Как справиться с множественными подключениями к БД ктулху Mon, 24 Oct 2011 13:38:48 +0400 Сообщения https://visavi.net/topics/25896/437424 <blockquote class="blockquote">Если сервер с начальными данными недоступен выдаем уведомление, надеясь что он не обидится=)</blockquote> Это решается репликацией. <br> <br> З.Ы. Все же, как на счет очередей запросов? Есть какие-то готовые проверенные способы, или в каждом отдельном случае надо городить свой забор? У меня есть пару идей на примете, но для этого нужен как минимум доп-сервер, выступающий в роли журнала очереди. https://visavi.net/topics/25896/437412 Как справиться с множественными подключениями к БД Дмитрий Mon, 24 Oct 2011 12:59:20 +0400 Сообщения https://visavi.net/topics/25896/437412 Я не знаю ни PHP ни MySQL=)<br> Но идея такова:<br> Имеем например 5млн записей и 7 БД, а лучше серверов.<br> Далее эти записи расскидываем по БД. Т.е. просто делим.<br> Далее, если пользователю нужны будут старые записи то отдаем их подгружая. Если сервер с начальными данными недоступен выдаем уведомление, надеясь что он не обидится=) https://visavi.net/topics/25896/437236 Как справиться с множественными подключениями к БД Андрей Mon, 24 Oct 2011 00:01:27 +0400 Сообщения https://visavi.net/topics/25896/437236 не знаю я буржуйского языка... <img src="https://visavi.net/uploads/stickers/cry.gif" alt="cry"> <br> <br> <em><span style="font-size:x-small">Добавлено через 00:49 сек.</span></em><br> <blockquote class="blockquote"><strong>МегабиТ</strong> (23 Октября 2011 / 13:26)<br> 21. <strong>dima.london</strong>, не задумывался о смени яп серверной части?) треды в php это слишком</blockquote> Задумавылся. Но только в отдельных компонентах приложения. https://visavi.net/topics/25896/437001 Как справиться с множественными подключениями к БД Дмитрий Sun, 23 Oct 2011 14:28:02 +0400 Сообщения https://visavi.net/topics/25896/437001 19. <strong>dima.london</strong>, из коментов на хабре<br> <br> <a href="http://www.amazon.com/gp/aw/d/0596101716/ref=redir_mdp_mobile" target="_blank" rel="nofollow">http://www.amazon.com/gp/aw/d/0596101716/ref=redir_mdp_mobile</a> (High Performance MySQL: Optimization, Backups, Replication, and More (Paperback)) <br> <a href="http://www.mysqlperformanceblog.com/" target="_blank" rel="nofollow">http://www.mysqlperformanceblog.com/</a> MySQL Performance Blog<br> <br> <em><span style="font-size:x-small">Добавлено через 01:09 сек.</span></em><br> 21. <strong>dima.london</strong>, не задумывался о смени яп серверной части?) треды в php это слишком https://visavi.net/topics/25896/437000 Как справиться с множественными подключениями к БД Алексей Sun, 23 Oct 2011 14:26:14 +0400 Сообщения https://visavi.net/topics/25896/437000 в итоге это все не по делу. В данный момент меня больше интересуют множественные коннекты к различным БД и варианты организации очередей запросов. <br> <br> 1) Насколько оправданно подключаться одновременно к нескольком БД.<br> <br> 2) Как поступить в том случае, когда одна из БД загибается и нужно притормозить ее работу? Я думаю писать определенный лог очереди запросов и когда загибающаяся БД раздуплится, выполнять в первыю очередь запросы, записанные в очередь, но с уже нужной мне скоростью (максимально приемлемой). Все новые запросы, поступающие в этот момент дописывать в конец очереди. Когда вся очередь выполнена - выполнять запросы напрямую в БД.<br> <br> Как это реализовать? Куда писать лог (журнал) очереди? В отдельную БД? https://visavi.net/topics/25896/436999 Как справиться с множественными подключениями к БД Дмитрий Sun, 23 Oct 2011 14:24:42 +0400 Сообщения https://visavi.net/topics/25896/436999 17. <strong>dima.london</strong>, над таким вопросом нужно посидеть не день и не неделю, попробывать не один вариант, для себя как реализацию я вижу примерно такую, перенсти часть нагрузки на клиента, негенерировать никаких страниц вобще на сервере а только массивы данных, статику вынести на отдельный сервер, часть данных(до состояния изменения) хранить у пользователя в Storage(HTML5 DOM Storage или SQLLite), только придется отказаться от старых браузеров IE &lt; 9, ну и собрать всю страницу у клиента по кускам https://visavi.net/topics/25896/436996 Как справиться с множественными подключениями к БД Алексей Sun, 23 Oct 2011 14:20:59 +0400 Сообщения https://visavi.net/topics/25896/436996 18. <strong>МегабиТ</strong>, гг Я на ютьюбе сегодня смотрел доклад этого Зайцева. Ущербный тип. Много воды льет не по делу. https://visavi.net/topics/25896/436992 Как справиться с множественными подключениями к БД Дмитрий Sun, 23 Oct 2011 14:14:29 +0400 Сообщения https://visavi.net/topics/25896/436992 15. <strong>dima.london</strong>, <a href="http://habrahabr.ru/blogs/mysql/130999/" target="_blank" rel="nofollow">http://habrahabr.ru/blogs/mysql/130999/</a> https://visavi.net/topics/25896/436991 Как справиться с множественными подключениями к БД Алексей Sun, 23 Oct 2011 14:11:32 +0400 Сообщения https://visavi.net/topics/25896/436991 16. <strong>МегабиТ</strong>, а как те еще предлагаешь? При каждом перекешировании перебирать все сервера? Посмотри на фейсбук. У них 4 датацентра. Это рехнуться можно, пока выберешь данные со всех серверов. <br> Ну, максимум - это можно у каждого юзера хранить массив серверов (типа 1, 2, 5, 17, 24), и при записи нового сообщения узнавать, в какой сервер пишется сообщение и перебирать массив серверов. Если сервер в массиве не найден - дописывать его туда. А при выборе сообщений просто перебирать этот массив и брать данные из тех серверов, что записаны в массив. Хз. https://visavi.net/topics/25896/436990 Как справиться с множественными подключениями к БД Дмитрий Sun, 23 Oct 2011 14:11:02 +0400 Сообщения https://visavi.net/topics/25896/436990 15. <strong>dima.london</strong>, мне кажется что в реальных условиях твое решения окажется либо не эффективным либо не работо способным вобще https://visavi.net/topics/25896/436987 Как справиться с множественными подключениями к БД Алексей Sun, 23 Oct 2011 14:04:46 +0400 Сообщения https://visavi.net/topics/25896/436987 14. <strong>МегабиТ</strong>, почему? Только при выборе данных из БД. К примеру, срок кеша закончился, и его надо перекешировать. Я вынимаю из определенного места памяти IDы первого и последнего сообщения, подсчитываю, с какого по какой серверы хранятся данные, и выбираю. Чтобы не дергать ненужные сервера. К примеру, серверов 10, а после подсчета получается, что данные хранятся с 3 по 7 сервера. Вот из этих 5 и делать выборку и формировать кеш из массива полученных данных. <br> Все просто. https://visavi.net/topics/25896/436985 Как справиться с множественными подключениями к БД Дмитрий Sun, 23 Oct 2011 14:02:00 +0400 Сообщения https://visavi.net/topics/25896/436985 13. <strong>dima.london</strong>, постоянно пересчитывать записи? https://visavi.net/topics/25896/436983 Как справиться с множественными подключениями к БД Алексей Sun, 23 Oct 2011 13:57:34 +0400 Сообщения https://visavi.net/topics/25896/436983 11. <strong>ShiftBHT</strong>, я считаю, что при записи первого сообщения юзера, ID этого сообщения надо запоминать. Кроме того надо хранить в памяти ID последнего сообщения юзера. И от него отталкиваться при выборке всех его сообщений. <br> <br> К примеру, <br> - первый ID=1250004 - значит выбор надо начинать со второго сервера (1250004/1млн = 1,25 что значит второй сервер)<br> <br> - последний ID=2275404 - значит выбор надо заканчивать на третьем сервере (2275404/1млн = 2,27 что значит третий сервер)<br> <br> Исходя их этого, данные надо выбирать из 2 и 3 сервера.<br> <br> как-то так https://visavi.net/topics/25896/436981 Как справиться с множественными подключениями к БД Дмитрий Sun, 23 Oct 2011 13:56:21 +0400 Сообщения https://visavi.net/topics/25896/436981