ОГРОМНАЯ база MySQL

Мутник

Новичок
ОГРОМНАЯ база MySQL

есть база данных на 3.000.000 записей... И из нее селект простейший делается что то вроде 5-7 секунд, не говоря уже о поиске типа LIKE.

Посоветуйте, что можно посмотреть, где можно почитать?

имеется всего 6 полей (индексов нет, т.к. вставка слишком долгая, при индексировании). В месяц получается около 2-3 млн. записей, а хранить надо записи за 3 месяца, чтобы их постоянно анализировать.
 

.des.

Поставил пиво кому надо ;-)
Версия мускл?
Примеры запросов? Частота запросов.
Что хранится в базе? зачем нужен like? какой именно like?
Индексы должны быть.
2-3 млн записей в месяц для нормального железа пустяк.
 

Мутник

Новичок
.des.

MySQL 4.0.17

LIKE не нужен вовсе, в базе хранятся цифры, не более того. Т.е. вся выборка по конкретным значениям.

Запросов большинство вида

[sql]
INSERT INTO `table_name` SET `a`='1', `b`='2'
[/sql]

т.е. в основном вставки, без апдейтов.
Ну и выборки - для статистики с кучей WHERE'ов.


компик - P4, 3.2 1GB RAM.

Сейчас сделал теста ради нечто вроде

PHP:
$sql = "INSERT INTO `".$this->table_main."` SET 
`name1` = '".sha1(rand(1,1000000))."', 
`name2` = '".sha1(rand(1,1000000))."', 
`name3` = '".sha1(rand(1,1000000))."', 
`name4` = '".sha1(rand(1,1000000))."', 
`name5` = '".sha1(rand(1,1000000))."', 
`name6` = '".sha1(rand(1,1000000))."'";	
mysql_query($sql);
миллион вот таких вот записей.. Работало около 200 секунд, вставилО... Но после миллиона вставляет 10-12 записей в секунду. Если сделать ХОТЯ БЫ один индекс - ВСЕ.. труба. (один запрос за 2-3 секунды)
 

.des.

Поставил пиво кому надо ;-)
2 основных пункта.
1. Вставлять ОЧЕНЬ желательно через LOAD DATA INFILE или по крайней мере пакетная вставка (1,2,3,4),(5,6,7,8),...(..)
2. Сервер должен быть правильно настроен.

сходу не вспомню
но в гугл по ключевым словам: tuning mysql key_buffer key_reads key_reads_requests key_writes key_write_requests
max_connections

А во время теста top что говорит? io wait ~ 99% если да то или не хватает памяти или не правильно настроен сервер.. скорее второе так как объем для 1гб рама вполне приемлемый.
 

Мутник

Новичок
.des.

да все вставления происходят постепенно, т.е. равномерно примерно 100.000 запросов в сутки, нету разового БУМа.

за "гугл" спасибо, будем искать!

P.S. на Буша пойдешь смотреть? :)
 

Мутник

Новичок
si

ну не надо уж совсем так плохо..

я написал, что это было сделано не более чем в "тестовых целях"...

нет, это, как ни странно, будет строка из 40 разных символов.
 

ONK

Пассивист PHPСluba
Мутник, какието странные проблемы у тебя с индексами. Я вставлял в таблицу с 25М записей по 400 записей в секунду, при том что в таблице 46 колонок и 8 индексов, в том числе 2 индекса многостолбцовые. Вобщем копай глубже.
 

camka

не самка
А зачем поиск типа LIKE по числовым строкам?

-~{}~ 06.05.05 10:29:

Да, и обнови версию
 

Мутник

Новичок
camka

я написал, что это чистый пример. ЭТО ВО-ПЕРВЫХ.

ONK
намекни, что за многостолбцовые индексы.
 

Tigr

Новичок
Мда. База небольшая, а мощи ПК достаточно. Индексы таки нужны.
 

Мутник

Новичок
ок, всем спасибо за советы. вроде бы разобрался с проблемами, добавляется куда быстрее, чем было.
 
Сверху