ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

mysql оптимизация на denwer
  #1  
Старый 08.09.2009, 11:58
Аватар для agamerr
agamerr
Новичок
Регистрация: 07.03.2008
Сообщений: 5
Провел на форуме:
15083

Репутация: 0
По умолчанию mysql оптимизация на denwer

Проблема
Тормозит скрипт, долго выполняет работу,
100 слов ищеться около 30 сек, по таблице полмилиона записей

Исходные данныые
комп десктоп 2,5 celeron 1гб оперативной памяти, + denwer3 (denwer.ru)
использую класс, dbsimple (http://dklab.ru/lib/DbSimple/)


создаю таблицу по существу нужны 2 колонки (
1столбец - слово,
2столбец - цифра,
)

PHP код:
"CREATE TABLE $table2 ( 
ide INT(15) NOT NULL AUTO_INCREMENT, 
ones VARCHAR(30) NOT NULL, 
num INT(15) DEFAULT 1, 
UNIQUE KEY ide (ide) 
)CHARACTER SET utf8 COLLATE utf8_unicode_ci;"

после создания таблицы заполняю ее на полмилиона записей, здесь все норм

дальше начинаются проблемы
работа скрипта и трабла, следующая,

скрипт ищет слово в первом столбце
запрос делаю такой

PHP код:
$sID $DB->selectCell('SELECT num FROM table2 WHERE ones=?'$onesto); 
искать слов нужно много,
итого запускаю скрипт на поиск 100 слов ищеться около 30 сек это нормально?


что пробывал ?
решил настройть my.cnf


PHP код:
my.cnf

# Различные настройки, оптимизированные для небольшого объема памяти.
skip-locking
key_buffer            
42M
max_allowed_packet    
99M
table_cache           
4
sort_buffer_size      
12M
read_buffer_size      
12M
read_rnd_buffer_size  
12M
net_buffer_length     
12M
thread_stack          
12M 
php.ini
PHP код:
;;;;;;;;;;;;;;;;;;;
Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time 3000     Maximum execution time of each scriptin seconds
max_input_time 
6000    Maximum amount of time each script may spend parsing request data
;max_input_nesting_level 64 Maximum input variable nesting level
memory_limit 
500M      Maximum amount of memory a script may consume (128MB

проблема не решена скрипт грузит ц/п, и хреново пашет на мой взляд,
что можно изменить или оптимизировать
есть ли лечение?
I need help

Последний раз редактировалось agamerr; 09.09.2009 в 10:28..
 
Ответить с цитированием

  #2  
Старый 08.09.2009, 15:46
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

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

у мускуля 1 мега запрос быстрее 100 маленьких => делай выборку SELECT * FROM table WHERE column="word_1" OR column="word_2" OR ....

на пхп что-то в виде
PHP код:
<?php

$words 
= Array(); //массив слов

$query '';

foreach(
$words as $value)
{
  if (
strlen($query) > 0)
  {
    
$query .= ' OR ';
  }
  
  
$query .= 'column="' $value '"';
}

$sID $DB->selectCell('SELECT num FROM table2 WHERE' $query);  

?>
Если не волнует как данные хранятся..... то можно вначале все искомые слова сложить в таблицу и сделать JOIN

Последний раз редактировалось FireFenix; 08.09.2009 в 15:54..
 
Ответить с цитированием

  #3  
Старый 08.09.2009, 17:57
Аватар для Gifts
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

agamerr Главное - сделать индекс на столбец в котором ищете. Потом открыть глаза на прикрепленные темы. А дальше уже читать например такое: http://habrahabr.ru/blogs/mysql/20246/
FireFenix
PHP код:
$words = array('слово1','слово2');
$sID $DB->selectCell('SELECT num FROM table2 WHERE ones IN ("'.implode('","',array_map('mysql_real_escape_string',$words)).'")'
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
 
Ответить с цитированием

  #4  
Старый 09.09.2009, 10:26
Аватар для agamerr
agamerr
Новичок
Регистрация: 07.03.2008
Сообщений: 5
Провел на форуме:
15083

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

FireFenix, Gifts,
биг респект сейчас буду рыть,
что самое интересное написал на форум программистов,
нихрена толкового не посоветовали,
 
Ответить с цитированием

  #5  
Старый 09.09.2009, 13:32
Аватар для agamerr
agamerr
Новичок
Регистрация: 07.03.2008
Сообщений: 5
Провел на форуме:
15083

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

народ палю тему, порекомендовали погуглить по my-huge.ini
итого
в настройках my.ini

выставил такие,
skip-locking
key_buffer = 300M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
net_buffer_length = 33M
thread_stack = 33M
thread_cache_size = 8
sort_buffer_size = 30M
query_cache_size = 32M


500 запросов , база 1млн записей
скорость внимание 2 сек
 
Ответить с цитированием

  #6  
Старый 09.09.2009, 14:50
Аватар для m0Hze
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Цитата:
Сообщение от agamerr  
народ палю тему, порекомендовали погуглить по my-huge.ini
итого
в настройках my.ini

выставил такие,
skip-locking
key_buffer = 300M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
net_buffer_length = 33M
thread_stack = 33M
thread_cache_size = 8
sort_buffer_size = 30M
query_cache_size = 32M


500 запросов , база 1млн записей
скорость внимание 2 сек
Мда,некуевые настроечки.ТОлько вот вопрос,а на хочтинге ты тоже будеш править my.conf?
Или будеш на денвере держать
--
Тебе же дали наверху верные советы,зачем ты полез в насройки памяти.Не трогай их.Сделай как советовали по инексу,и большгим запросом.
 
Ответить с цитированием

  #7  
Старый 09.09.2009, 15:26
Аватар для agamerr
agamerr
Новичок
Регистрация: 07.03.2008
Сообщений: 5
Провел на форуме:
15083

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

это называется против лома нет приема

у меня скрипт десктопный, поэтому прокатит,
эти рекомендации годятся для серверов
с памятью от 1 гб

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

Последний раз редактировалось agamerr; 09.09.2009 в 16:40..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита БД MySQL от SQL инъекций с помощью GreenSQL xcedz Администрирование 5 02.04.2009 21:46
SQL injection в MySql сервере версии 3,x bandera Чужие Статьи 3 04.06.2006 16:17
Общие Рекомендации Защиты (MySQL и SQL Web-интерфейс) k00p3r Чужие Статьи 0 13.06.2005 11:22
Защищаем MySql. Шаг за шагом k00p3r Чужие Статьи 0 13.06.2005 11:18
SQL инъекция в сервере MySQL k00p3r Чужие Статьи 0 12.06.2005 12:41



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


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




ANTICHAT.XYZ