|
|
|
|
|
для: cheops
(16.04.2005 в 23:49)
| | Согласен, но ведь многопользовательское сообщение может в себя включять как 2 человек, так и 15... Самое простое это задать запрос без 'in'. Отсортировать в обратном порядке. Создать строковый массив на нужное количесвто записей. Вносить туда даные до полного заполнения или окончания всех нужных записей в базе. И после этого вывести все echo arhiv в цикле. Так я избежу скл-запроса типа "ин" и обрезать строки сам смогу архивом... | |
|
|
|
|
|
|
|
для: Dimrix
(16.04.2005 в 19:29)
| | Кстати в чатах не принято в основной базе хранить сообщения месячной давности именно из-за высокой нагрузки, обычно сообщения которые были добавлены более суток назад отправляются в архив, поэтому основная база всегда небольшая и с ней легко и быстро работать. А так да, следует избегать запросов вида "Значение in Поле1" и статраться создать структуру базы таким образом, чтобы запросы были Поле1=Значение", тогда можно индексировать столбцы и это приведёт к значительному увеличению производительности. | |
|
|
|
|
|
|
|
для: cheops
(15.04.2005 в 22:53)
| | Ну а если это чат, и строчек только в день может быть до нескольких 10 000, то как через пару месяцев запрос будет шерстить базу(ведь поиск будет не как "Поле1=Значение" а как "Значение in Поле1", т.е. поиск по строке, которая содержит нужные символы...)? Можно её(базу) резать или добавлять дополнительный параметр поиска "дата>" (а кстати это идея :-) ). Так предлагаете? | |
|
|
|
|
|
|
|
для: Dimrix
(15.04.2005 в 13:57)
| | Хм... вряд ли вам удастья обогнать в скрости MySQL, выполняя её работу средствами PHP. MySQL написана на С, а PHP является интерпретатором и работает заведомо медленнее. Кроме того, база данных MySQL специально создавалась для бытрых манипуляций данными. | |
|
|
|
|
|
|
|
для: cheops
(15.04.2005 в 12:35)
| | Да, да на MySQL, но лимитирование средствами СКЛ будет накладно я думаю. Это чат. С полями (описываю только нужные для обсуждения) 4ID, Fraza, Rooms, ChID.
4ID - уникальное поле
ChID - УнНомер того, кто сказал
Fraza - то что сказал человек
Rooms - комната где он это сказал или цифра 1..4 (1 - приват, 2 - приват в общак, 3 многопользовательский приват, 4 - многопользовательский приват в общак)
Если Rooms число - то фразу записую как %ID1% %ID2%... текст фразы, где IDx - это ун номер пользователя, кому адресовано сообщение. Соответственно фильтроват базу на 30 сообщений где комната=комнате нахождения и где во всех фразах присутствует %твой ид% будет чуток для машины тяжело. Вот и хочу решить проблему не средствами запросов MySQL, а средствами пхп.
P.S. почему не записываю ИД приёмщиков приватов в комнаты - потому как размер поля Rooms char[20], расширят не хочу, а вот размер поля Fraza char[250] - вполне достаточно для данных, кому мало пусть чаще ентер в чате нажимает :-))) | |
|
|
|
|
|
|
|
для: Dimrix
(15.04.2005 в 11:32)
| | MySQL =) | |
|
|
|
|
|
|
|
для: Dimrix
(15.04.2005 в 11:32)
| | Хм... а как организовано хранение строк и их вывод? | |
|
|
|
|
|
|
| Добрый день.
Есть ли функции, "обрезающие" старые строки. Ну как в чате, не воводят все, а выводят последние, допустим, 50 фраз | |
|
|
|
|