|
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
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 сервера ?
Спасибо.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35563
|
|