Новости
Документация
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



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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35563



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