ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

28.07.2008, 17:22
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Если просто проверка существует ли слово в строке или нет, то зачем preg_match, если есть специальные строковые функции, которые между прочим работают быстрее чем регулярки.
К примеру:
PHP код:
$txt = 'Превед медвед';
if(strstr($txt, 'Превед')) echo 'Найдено';
Ну а если надо ещё и вывести результ, то тут регулярки))
|
|
|

28.07.2008, 17:48
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
Задался вопросом по системе комментов
Я так понимаю простейшие системы комментирования работают следующим образом------
Пользователь заполняет форму комментария на странице, нажимает отправить и данные из формы,а также hidden переменная это страницы (это может быть id фильма, книги и т.д) уплывают на скрипт, который их обрабатывает и ВНИМАНИЕ (заносит в базу командой INSERT) И так, как инзерт вставляет каждый раз новую строчку то получается нечто, наподобе этого:
Пример таблицы комментариев
user_id firstname lastname story
112 Fuck Suck what is up?
112 fuck suck fuck u
Видно что каждый раз добавляя комментарий записывается переменная id для пользователя
А выборка идёт так Select * from table where user_id=?
Это получается что если в таблице 1.200.000 записей!
то они вывядятся по запросу id но ведь id то СОВПАДАЕТ и mysql придётся каждый раз искать id.
Как это можно оптимизировть? Можно ли привязать все сообщения только к одному пользователю? Ведь в таблице они в разброс!!!
|
|
|

28.07.2008, 18:08
|
|
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме: 21768337
Репутация:
3486
|
|
Сообщение от MafiaBoy3
Задался вопросом по системе комментов
Я так понимаю простейшие системы комментирования работают следующим образом------
Пользователь заполняет форму комментария на странице, нажимает отправить и данные из формы,а также hidden переменная это страницы (это может быть id фильма, книги и т.д) уплывают на скрипт, который их обрабатывает и ВНИМАНИЕ (заносит в базу командой INSERT) И так, как инзерт вставляет каждый раз новую строчку то получается нечто, наподобе этого:
Пример таблицы комментариев
user_id firstname lastname story
112 Fuck Suck what is up?
112 fuck suck fuck u
Видно что каждый раз добавляя комментарий записывается переменная id для пользователя
А выборка идёт так Select * from table where user_id=?
Это получается что если в таблице 1.200.000 записей!
то они вывядятся по запросу id но ведь id то СОВПАДАЕТ и mysql придётся каждый раз искать id.
Как это можно оптимизировть? Можно ли привязать все сообщения только к одному пользователю? Ведь в таблице они в разброс!!!
Вообще то в разного рода таблицах с комментариями используют ещё идентификатор самого комментария. Например post_id. При создании таблицы этот столбец указывается автоинкрементальным, по нему в дальнейшем уже и идёт обработка результатов.
|
|
|

28.07.2008, 18:01
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
Вообще никто не запрещал использовать limit, sort
|
|
|

28.07.2008, 18:09
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
Да нет чтобы применить limit нужно этих данных ещё набрать.
Я говорю отом что при добавлении комментариев во всех системах в базу каждый раз добавляется id чего то и поиск ведётся по всей базе при выборке именно по нему.
А если бы он был один то как бы снизилась нагрузка!!
|
|
|

28.07.2008, 18:14
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
Вообще то в разного рода таблицах с комментариями используют ещё идентификатор самого комментария. Например post_id. При создании таблицы этот столбец указывается автоинкрементальным, по нему в дальнейшем уже и идёт обработка результатов.
"Интересно какая такая ещё обработка?
|
|
|

28.07.2008, 18:26
|
|
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме: 3326855
Репутация:
702
|
|
При построении БД надо учесть основные правила построения БД
Одно из них(простыми словами) - у каждой записи должно быть поле, значение которого отличает его от остальных. В твоём случае - это id сообщения. То есть, конструкция, приведённая тобой работать не будет.
|
|
|

28.07.2008, 18:40
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
Провел на форуме: 170237
Репутация:
4
|
|
Для оптимизации в твоей таблице не хватает привязки коментария к определенной теме и сообщения которое коментируется. А если будет существовать эта привязка то поиск по базе будет суживать именно это, тобишь в базе будет проверется индификатор сообщения или темя, а потом+ id пользователя,что и даст оптимизацию скрипта!
|
|
|

28.07.2008, 18:44
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
post_id автоинкремент
user_id id юзера
coment коментарии
Код:
SELECT * FROM `table`WHERE `user_id`='id'
В чем проблемма то? Ты хоть расстолкуй 
|
|
|

28.07.2008, 18:45
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Хорошо что про sql заговорили))
как в WHERE указать несколько параметров?
что-то вроде:
PHP код:
SELECT * FROM `table` WHERE `id` = 1, 2, 3
то исть выборку осуществлять только с указанными id.
понятно что этот код не работает, а очень хотелось бы всю эту дрянь получить одним запросом. В доках ничего полезного не нашёл...
сейчас для этой цели юзаю цикл.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|