Я планирую разработать базу данных, содержащую только 2 таблицы (stats1 и stats2), но эти таблицы будут содержать строки до 40 000 000 записей!
Все записи будут "положительными / беззнаковыми" целыми числами.
Версия клиента MySQL: 5.0.91
Вот некоторая информация об обеих таблицах:
статистика1
всего текущих записей = 10 000 000
содержит 3 столбца, в которых хранятся следующие фиксированные числа:
статистика2
всего текущих записей = 5 000 000
содержит 3 столбца, в которых хранятся следующие фиксированные числа:
Я немного знаю MySQL, PHPmyadmin, но мне нужен ваш совет, как сделать это эффективным.
MySQL может справиться с таким размером без серьезных проблем (у нас хранится более 100 миллионов).
Какова скорость роста данных? 1000 вставок в минуту / час / день? Будет ли рост быть постоянным или записи будут добавляться массово (т. Е. 100000 записей в пакете)?
Ваше использование - это ключ. Если вы выполняете произвольные запросы с агрегатными функциями (сумма и т. Д.), Производительность пострадает.
Если данные относительно статичны и вы выполняете на них функции аналитического типа, я бы посмотрел на движок базы данных, ориентированный на столбцы. Что-то вроде InfoBright или InfiniDB. Оба они работают с клиентами MySQL. Если вы теперь знаете, как использовать MySQL, вы можете использовать их. Но они могут не работать для вас в зависимости от того, как вы хотите получать доступ к своим данным и запрашивать их.
Во-первых, 4 × 10⁷ столбцов с тремя целыми числами в каждом не слишком много. Я полагаю, что даже Sqlite или менее надежные базы данных могут обрабатывать такое количество записей.
Теперь, если вы спросите об эффективности, все зависит от использования базы данных. Все, что ты сказал, это как хранятся данные, но более важно как это используется. Рассмотрим следующие ситуации:
Каждый случай требует разного подхода.