![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| yurik_l |
|
|||
|
тарантиноман Профиль Группа: Участник Сообщений: 49 Регистрация: 17.9.2006 Репутация: 1 Всего: 3 |
m1kle, о индексах: http://kurepin.ru/php/index/
|
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Кое-как разобрался с индексами.
select * from `enters` WHERE `time` LIKE '%".mysql_real_escape_string($tim)."%' $bot order by `".mysql_real_escape_string($o)."` ".mysql_real_escape_string($d)." Использую вот такой запрос. Данные за год он считал до введения индекса за 8 секунд, после введения индекса - также. Непонимаю, почему. *Думаю стоит удалить все данные о ботах, которые заходили на сайты. *Еще появилась идея не записывать в базу время, только даты. Вопрос: Как сделать тип данной IP? Это сообщение отредактировал(а) m1kle - 1.10.2008, 18:00 |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
select * from `enters` limit 30
долго выполняеться такой запрос? |
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Валерия, 0,172 сек.
Так для любой базы, даже маленькой. |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
Что за $bot?
Вообще что тебе нужно сделать со всеми этими записями? Вывести? Тогда делай постранично. |
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
$bot - это если пользователь выбрал не показывать роботов, которые посетили сайт, ему их не показывают.
Мне нужно вывести, чтобы все были на одной странице, а вообще мне надо сократить время загрузки, 8 секунд это не дело. |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
Ну смотри, если ты говоришь что у тебя база 60 мб, то ты на страницу так много выводишь о_О?
По крайней мере делай не select * а перечисляй только те поля что выводишь, уже меньше мускул будет в пхп инфы передавать. Только не говори что нужно все поля и выводить))) Это сообщение отредактировал(а) Валерия - 1.10.2008, 19:25 |
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Да, нужно все поля выводить.
Я думаю, можно съэкономить на удалении ботов(80% базы), и сделать дату без времени. Еще перевести IP в тип IP. |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
Мне просто интересно сколько у тебя html страничка сгенерированная грузиться с такой кучей инфы)
Сделай делит там где встречаеться в useragent слово bot (кажись все поисковики дают юзерагент типа google-bot yandex-bot, но не уверена) |
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Валерия, я знаю, как их распозновать и думаю не только удалить их из базы, но и не записывать новых ботов.
|
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Разобрался, удалил всех ботов. Количество записей сократилось в два раза.
Теперь нужно не записывать новых ботов. Вопрос, можно как-то через MySQL прописать, что поле не может принимать определенные значения. Например поле `beta` не может принимать значения, которые включают в себя "%alpha%" Также есть вопрос, как сделать поле типа IP, с помощью MySQL? Появился еще вопрос: как ограничит Базу данных до 50 записей? *После предпринятых мер, время загрузки сократилось на треть. Это сообщение отредактировал(а) m1kle - 9.10.2008, 18:25 |
|||
|
||||
| m1kle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Ап. Тема забытая, а ответы на вопросы не получены.
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
select и если есть, то не записывать нет такого типа поля, как и нет типа поля районные центры Хабаровского края. сделай varchar(16), а при поиске простое сравнение Добавлено через 56 секунд select count(*) если больше 50 или больше, не записывать п.с. в базе таблицы, а уже в таблицах - записи |
|||
|
||||
| georgiy11 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Вот неплохая статья ИМХО по оптимизации БД http://stroimsayt.com/drugoe/o-gramotnom-i...i-bd-mysql.html
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
только триггерами. конечно, если говорить только про использование СУБД. потому как средствами того же PHP подобная логика решается на "раз". учитывая наличие встроенных функций дя работы с IP: INET_ATON и INET_NTOA, а так же стопудов более быструю индексацию для целых чисел в сравнении с индексом по тексту, учитывающим кодировку и collation, все же советовал бы использовать целочисленное поле под хранение IP |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |