HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 28.07.2008, 17:22
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Если просто проверка существует ли слово в строке или нет, то зачем preg_match, если есть специальные строковые функции, которые между прочим работают быстрее чем регулярки.
К примеру:
PHP код:
$txt 'Превед медвед';
if(
strstr($txt'Превед')) echo 'Найдено'
Ну а если надо ещё и вывести результ, то тут регулярки))
 
Ответить с цитированием

  #2  
Старый 28.07.2008, 17:48
MafiaBoy3
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.

Как это можно оптимизировть? Можно ли привязать все сообщения только к одному пользователю? Ведь в таблице они в разброс!!!
 
Ответить с цитированием

  #3  
Старый 28.07.2008, 18:08
.Slip
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. При создании таблицы этот столбец указывается автоинкрементальным, по нему в дальнейшем уже и идёт обработка результатов.
__________________
..
 
Ответить с цитированием

  #4  
Старый 28.07.2008, 18:01
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме:
3986705

Репутация: 1403


Отправить сообщение для bul.666 с помощью ICQ
По умолчанию

Вообще никто не запрещал использовать limit, sort
 
Ответить с цитированием

  #5  
Старый 28.07.2008, 18:09
MafiaBoy3
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме:
756152

Репутация: 38
По умолчанию

Да нет чтобы применить limit нужно этих данных ещё набрать.
Я говорю отом что при добавлении комментариев во всех системах в базу каждый раз добавляется id чего то и поиск ведётся по всей базе при выборке именно по нему.
А если бы он был один то как бы снизилась нагрузка!!
 
Ответить с цитированием

  #6  
Старый 28.07.2008, 18:14
MafiaBoy3
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме:
756152

Репутация: 38
По умолчанию

Цитата:
Вообще то в разного рода таблицах с комментариями используют ещё идентификатор самого комментария. Например post_id. При создании таблицы этот столбец указывается автоинкрементальным, по нему в дальнейшем уже и идёт обработка результатов.
"Интересно какая такая ещё обработка?
 
Ответить с цитированием

  #7  
Старый 28.07.2008, 18:26
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

При построении БД надо учесть основные правила построения БД
Одно из них(простыми словами) - у каждой записи должно быть поле, значение которого отличает его от остальных. В твоём случае - это id сообщения. То есть, конструкция, приведённая тобой работать не будет.
 
Ответить с цитированием

  #8  
Старый 28.07.2008, 18:40
~NeiTRoN~
Познающий
Регистрация: 03.07.2008
Сообщений: 65
Провел на форуме:
170237

Репутация: 4
Отправить сообщение для ~NeiTRoN~ с помощью ICQ
По умолчанию

Для оптимизации в твоей таблице не хватает привязки коментария к определенной теме и сообщения которое коментируется. А если будет существовать эта привязка то поиск по базе будет суживать именно это, тобишь в базе будет проверется индификатор сообщения или темя, а потом+ id пользователя,что и даст оптимизацию скрипта!
 
Ответить с цитированием

  #9  
Старый 28.07.2008, 18:44
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

post_id автоинкремент
user_id id юзера
coment коментарии

Код:
SELECT * FROM `table`WHERE `user_id`='id'
В чем проблемма то? Ты хоть расстолкуй
 
Ответить с цитированием

  #10  
Старый 28.07.2008, 18:45
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Хорошо что про sql заговорили))

как в WHERE указать несколько параметров?
что-то вроде:
PHP код:
SELECT FROM `tableWHERE `id` = 12
то исть выборку осуществлять только с указанными id.
понятно что этот код не работает, а очень хотелось бы всю эту дрянь получить одним запросом. В доках ничего полезного не нашёл...
сейчас для этой цели юзаю цикл.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ