Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужен небольшой совет [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Без описания
vanicon
Отправлено: 05 Сентября, 2012 - 21:59:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
Ну и что? Какая проблема-то? Все вторичные индексы innoDB ссылаются на первичный ключ, и отлично живут весьма огромные таблицы.

Конечно mysql будет работать с таким кол-во данных, я собственно не об этом. Я опять же по скорости работы, выбирать из одной таблицы где огромное число строк по индексу(id_user) или же по отдельно таблице просто и без индекса. И велика ли разница?
(Добавление)
Цитата:
В отсутствии будущего и ужасных костылей тут же, как понадобится любая агрегация. А она понадобится. Иметь проект и даже представления не иметь о происходящих там делах - невозможно.

Это Вы что сейчас имеете ввиду?
И еще по поводу таблиц, если я не ошибаюсь то время выполнения запроса на выборку постов определенного пользователя(по индексу id_user) будет зависеть от кол-во записей в общем в это таблице постов. А если по отдельным таблицам, то будет зависеть от кол-во записей только конкретного пользователя. Я прав?

(Отредактировано автором: 05 Сентября, 2012 - 22:05:07)



-----
Так было, так есть и так будет
 
 Top
caballero
Отправлено: 05 Сентября, 2012 - 22:35:31
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Я опять же по скорости работы, выбирать из одной таблицы где огромное число строк по индексу(id_user) или же по отдельно таблице просто и без индекса. И велика ли разница?

только отдельных таблиц будет немеряно - а это уже тормоза изза файловой системмы.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanicon
Отправлено: 05 Сентября, 2012 - 22:37:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
только отдельных таблиц будет немеряно - а это уже тормоза изза файловой системмы.

Ну насколько я знаю то максимальное кол-во файлов в linux тоже не малое...


-----
Так было, так есть и так будет
 
 Top
caballero
Отправлено: 05 Сентября, 2012 - 22:39:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Ну насколько я знаю то максимальное кол-во файлов в linux тоже не малое...

скорость работы приложения с тысячами файлов будет меньше.
Либо держать открытыми дескрипторы либо переоткрывать кажддый раз

то есть либо памяти будет жрать либо проца

в конце концов кому не нравятся большие таблицы в Mysql партицирование есть

и как осуществлять например поиск по отдельным таблицам?

(Отредактировано автором: 05 Сентября, 2012 - 22:42:09)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanicon
Отправлено: 05 Сентября, 2012 - 22:43:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
в конце концов кому не нравятся большие таблицы в Mysql партицирование есть

Я ничего не имею против большой таблицы, меня волнует производительность выборки из нее. И если Вы говорите что тысячи открывания таблиц будет - плохо, то буду делать с большой таблицей и выборка по индексу.
(Добавление)
Хотя может, если создавать таблицу для потов где-то около месяц или чуть меньше. То есть каждый месяц своя таблица, так сказать немного разбивать данные по времени. Как думайте скорость выборки увеличится? Так как чем меньше данных в таблице тем вроде должно быть по лучше...
(Добавление)
Цитата:
Mysql партицирование

Думаю это то что нужно, но на данном этапе пока буду пользоваться 1 таблицей, а как данных будет много то можно будет заняться партицированием.
Спс caballero.


-----
Так было, так есть и так будет
 
 Top
caballero
Отправлено: 05 Сентября, 2012 - 22:55:45
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Хотя может, если создавать таблицу для потов где-то около месяц или чуть меньше. То есть каждый месяц своя таблица, так сказать немного разбивать данные по времени.

партицирование это и делает
если будете разбивать сами не сможете делать поиск по постам, к примеру


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanicon
Отправлено: 05 Сентября, 2012 - 23:08:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Теперь насчет 2 вопроса, как я уже писал у меня есть id_users(id пользователей через запятую) по сути это id тех пользователей которым этот пост добавлять не нужно(оно у них уже как бы есть). Я прописываю эти id через запятую в поле поста(таблица всех постов). Этих id в этом поле огромное кол-во(longtext).
И при определенном действие мне как бы необходимо разослать это сказание в ленты моим друзьям как бы, но только тем которых нет в этом списке id конкретного поста. Для начала я выбираю моих друзей, и можно делать запрос в mysql и делать через кучу LIKE то есть если друзей тыс 5 то соответственно столько же и операторjв LIKE, или можно выбрать это поле и через массив определить имеется ли в нем id моих друзей.
Это был первый вариант.
Теперь второй, это делать таблицу связки, где id_user(это id кому не надо рассылать пост), и id_post(для связи с таблицей постов). Но там строк будет в несколько сотен раз больше чем постов. (примерно тыс 50-100 на запись) И при этом придется делать очень много запросов к этой таблице, выбрав друзей потом делать запросы к этой таблице(примерная сложность n(кол-во друзей)). Хочется услышать Ваше мнение по этой проблеме...

(Отредактировано автором: 05 Сентября, 2012 - 23:12:45)



-----
Так было, так есть и так будет
 
 Top
caballero
Отправлено: 05 Сентября, 2012 - 23:15:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




с like будет медленно тем более что нельзя будет индексы задействовать

таблица связка с индексами по полям

и зачем держать список id в постах?

сомневаюсь что ктото будет выставлять десятки чекеров на каждый пост

(Отредактировано автором: 05 Сентября, 2012 - 23:16:05)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanicon
Отправлено: 05 Сентября, 2012 - 23:18:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
и зачем держать список id в постах?

Ну это удобнее, чем в отдельности Радость
Цитата:
сомневаюсь что ктото будет выставлять десятки чекеров на каждый пост

Нет там по другому, пользователь совершает действие с постом, и потом я добавлял id тех с кем дружит этот пользователь в это поле, то есть если у него 10 тыс друзей то они там приписываются через запятую и тд
Для того что бы когда друзья его друзей выполняли эту же операцию с эти постом, то тем у кого этот пост есть он его не добавлял в ленту.

(Отредактировано автором: 05 Сентября, 2012 - 23:20:47)



-----
Так было, так есть и так будет
 
 Top
caballero
Отправлено: 05 Сентября, 2012 - 23:23:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Ну это удобнее, чем в отдельности

чем?

Цитата:
пользователь в это поле, то есть если у него 10 тыс друзей то они там приписываются через запятую и тд

а зачем копировать в каждый пост если есть таблица откуда их можно получить в любой момент?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanicon
Отправлено: 05 Сентября, 2012 - 23:27:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
чем?

Просто при этом действии с постом, необходимо выбрать этот пост, ну а как раз и это поле можно выбрать и через массив...
Цитата:
а зачем копировать в каждый пост если есть таблица откуда их можно получить в любой момент?

О какой таблице идет речь? Это делается что бы избежать дубликаты этих постов в лентах, друзей друзей и т.д То есть 1 пользователь совершил это действия, его друзьям разослался этот пост в ленту, а если тому кому он разослал уже до него было разослано этот пост другим его другом получается дубликат поста. Вот зачем это делается...


-----
Так было, так есть и так будет
 
 Top
caballero
Отправлено: 05 Сентября, 2012 - 23:39:22
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




тогда таблица разосланных постов - id поста и id человека


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanicon
Отправлено: 05 Сентября, 2012 - 23:43:12
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
тогда таблица разосланных постов - id поста и id человека

Ну так да, я написал это выше(2 вариант). Но тогда придется делать кучу запросов, сначала выбрать моих друзей а потом делать запросы у это таблице для каждого моего друга, если 5 тыс друзей то 5 тыс запросов...


-----
Так было, так есть и так будет
 
 Top
caballero
Отправлено: 05 Сентября, 2012 - 23:48:24
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Но тогда придется делать кучу запросов, сначала выбрать моих друзей а потом делать запросы у это таблице для каждого моего друга,

запрос там всего один -
и это будет на три порядка быстрее чем парсить тысячт текстов


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
vanicon
Отправлено: 05 Сентября, 2012 - 23:49:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
запрос там всего один -

Какой если не секрет?


-----
Так было, так есть и так будет
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB