Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Конфигурация mysql 3500000 записей в таблице (Виктор) 08/05/2009 - 11:27:04
      Re: Конфигурация mysql 3500000 записей в таблице (walrus) 09/05/2009 - 20:19:19
      Re: Конфигурация mysql 3500000 записей в таблице (ssss) 11/05/2009 - 19:35:09

> Original message text:
> From: Виктор - 08/05/2009 - 11:27:04
> Subject:Конфигурация mysql 3500000 записей в таблице
> -----------------
> Здравствуйте.
> Подскажите пожалуйста как правильно настроить mysql сервер для работы с таблицей в 3500000 записей.
> В таблицу пишется статистика посещений. Время , ip адрес и другие данные пользователя.
>
> Установлен nginx + phpfastcgi
>
> База данных не справляется с запросами.
>
> Статистика базы данных по количеству запросов:
> Всего ø в час ø в минуту ø в секунду
> 4,016 35.87 k 597.92 9.9
>
> Сервер:
> Процессор Intel Quad Core Q6600
> Память 2 ГБ
>
> Версия mysql сервера: 5.0.32-Debian_7etch8-log
>
>
> Запросы такого вида:
>
> SELECT COUNT( DISTINCT `cl_ip` ) FROM `counters` WHERE `day` ='8' AND `project_id`='4'
> SELECT COUNT(*) FROM `counters` WHERE `day`='8' AND `project_id`='5'
>
> и запрос INSERT
>
>
> Структура таблицы:
>
> id bigint(11) Нет auto_increment
> unix_date int(10) UNSIGNED Нет
> day int(2) Нет
> month int(2) Нет
> year int(4) Нет
> project_id int(11) Нет
> cl_ip varchar(15) cp1251_general_ci Нет
> cl_user_agent varchar(500) cp1251_general_ci Нет
> cl_referer varchar(500) cp1251_general_ci Нет
>
>
> Индексы:
>
> PRIMARY PRIMARY 3424680 id
> cl_ip INDEX 1712340 cl_ip,project_id,day
>
>
> Конфиг mysql такой
>
> # * Fine Tuning
> #
> key_buffer = 800M
> join_buffer_size = 100M
> max_allowed_packet = 128M
> thread_stack = 30M
> thread_cache_size = 128
> max_connections = 500
> max_length_for_sort_data = 100M
> max_tmp_tables = 200
> table_cache = 200
> thread_concurrency = 100
> max_delayed_threads = 100
> sort_buffer_size = 1000M
>
> key_cache_block_size = 10000
>
> innodb_buffer_pool_size = 12777216
> innodb_file_io_threads = 20
> innodb_thread_concurrency = 20
>
> #
> # * Query Cache Configuration
> #
> query_cache_limit = 128M
> query_cache_size = 256M
>
>
> Я понимаю что можно создать отдельные таблицы по дням и всё будет работать идеально))
> Но хотелось бы понять. Таблица занимает 700 МБ на жёстком диске, в ней 3500000 записей, при том что сервер не загружен. Максимум с такими настройками mysql используется 400 МБ оперативки, процессор тоже не загружен.
>
> К примеру такой запрос:
>
> SELECT * FROM `counters` LIMIT 3425880 , 30
>
> занял 2.9526 сек
>
>
> Это слишком большая таблица или неправильно настроен конфиг mysql сервера ?
>
> Спасибо.
>
>
>
>
>
>
>
>


From: walrus - 09/05/2009 - 20:19:19
Subject:Конфигурация mysql 3500000 записей в таблице
-----------------
настройки сервера тут никаким боком при таком запросе. При вашем запросе
1) сервер выберет все записи
2) отмотает у себя в голове 3425880 записей вперед
3) вернет следующие 30 записей..

Используйте поиск по первичному ключу..


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35563



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |