Всем привет. Проектирую БД. Встал вопрос о производительности.
Сервер: MySQL
Версия сервера: 5.0.51a
Версия протокола: 10
Кодировка: UTF-8 Unicode (utf8)
Сразу хочу отметить, что все запросы к описанной ниже таблице будут выполняться через PHP-5.3.6 / PDO_MYSQL.
Структура таблицы "values"
Если предположить, что таблица "values" содержит 50 млн. записей следующего вида:
Возникает вопрос о производительности выполнения последовательно около 50 запросов (такие группы запросов будут выполняться 500 000 раз за 24 часа, другими словами, это 25 млн. запросов в сутки) следующего типа:
Есть еще вариант запроса к таблице "values", он имеет следующий вид:
Кол-во таких запросов за 24 часа, будет примерно 300 000.
Имеет ли смысл таким образом проектировать БД при таком раскладе?
Насколько серьезное потребуется железо для выполнения данных операций в короткие сроки (до 2 секунд группы из 50 запросов в первом варианте и до 2 секунд единичная выборка во втором варианте)?
Да и вообще, реально ли это?
Я понимаю, что тут можно обсуждать очень и очень приблизительно это дело, но все же...
Буду рад любым советам и прочему материалу для размышления, как организовать подобный сервер БД.
Сервер: MySQL
Версия сервера: 5.0.51a
Версия протокола: 10
Кодировка: UTF-8 Unicode (utf8)
Сразу хочу отметить, что все запросы к описанной ниже таблице будут выполняться через PHP-5.3.6 / PDO_MYSQL.
Структура таблицы "values"
Код |
---|
value_option_id | INT | UNSIGNED | Уникальный value | VARCHAR(64) |
Если предположить, что таблица "values" содержит 50 млн. записей следующего вида:
Код |
---|
1 | 6500 32 | Задний 53 | 407/4000 74 | 8 95 | 3.73 116 | - 137 | Винтовая пружина и т.д. |
Возникает вопрос о производительности выполнения последовательно около 50 запросов (такие группы запросов будут выполняться 500 000 раз за 24 часа, другими словами, это 25 млн. запросов в сутки) следующего типа:
Код |
---|
SELECT value FROM values WHERE value_option_id = 1; SELECT value FROM values WHERE value_option_id = 32; SELECT value FROM values WHERE value_option_id = 53; и т.д. |
Есть еще вариант запроса к таблице "values", он имеет следующий вид:
Код |
---|
SELECT value_option_id WHERE value = '6500' && value = 'Задний' [&& value = 'x']; |
Кол-во таких запросов за 24 часа, будет примерно 300 000.
Имеет ли смысл таким образом проектировать БД при таком раскладе?
Насколько серьезное потребуется железо для выполнения данных операций в короткие сроки (до 2 секунд группы из 50 запросов в первом варианте и до 2 секунд единичная выборка во втором варианте)?
Да и вообще, реально ли это?
Я понимаю, что тут можно обсуждать очень и очень приблизительно это дело, но все же...
Буду рад любым советам и прочему материалу для размышления, как организовать подобный сервер БД.