количество строк в таблице

12
M
На сайте с 28.09.2006
Offline
13
1419

уважаемые посетители форума

у меня такой вопрос

какое максимальное количество строк можно создавать в таблице MySQL

дело в том, что я сейчас делаю доску объявлений

рассчитываю на 30000 - 50000 объявлений

смогут ли обрабатываться запросы к таблице с 50000 строками?

можно пойти двумя путями

1 - легкий - создать одну таблицу с сообщениями

2 - трудный - создать для каждой категории таблицу

мои скромные исследования на эту тему - почти все скрипты досок объявлений используют одну таблицу ( http://1post.ru , http://allscript.ru и остальные )

единственная доска, использующая таблицу для каждой категории отличается повышенной скоростью, дам ссылку лично ( кому интересно )

интересует каждое мнение

стабильно 100$ с сайта в месяц здесь (http://www.sape.ru/r.960d480b23.php)
topy
На сайте с 28.03.2006
Offline
142
#1

ИМХО MySQL не напряжется на счет и 100000 строк, тем более, что у Вас не будут объявления там лежать вечно... (стирайте не актуальные).

А на счет

единственная доска, использующая таблицу для каждой категории отличается повышенной скоростью, дам ссылку лично ( кому интересно )
можно поглазеть?
Новости коротко и ясно (https://subnews.ru)
R2
На сайте с 01.02.2007
Offline
28
#2

к тому, что сказано topy добавлю свое имхо:

трудный путь не в создании кучи таблиц, а в создании правильных:

структура таблиц, индексация, оптимизация запросов и т.д.

M
На сайте с 28.09.2006
Offline
13
#3

topy, 100000 отлично подходит :)

буду тогда хранить собщения в одной таблице

raul21, очень с вами согласен,

индексацию, запросы оптимизировать для одной таблицы проще :)

не заморачиваюсь и остаюсь на одной таблице

спасибо за советы

вы очень помогли сделать правильный выбор

Dreammaker
На сайте с 20.04.2006
Offline
570
#4

Кроме того, иногда помогает и отсуствие индексов. Это актуально при частых insert`ах и update`ах на больших базах.

По теме: по официальной информации вроде несколько десятков миллионов строк обратываются нормально.

По моему опыту хорошо спроектированная база и поиск по больше, чем 1 млн записей проходит отлично (это на обычном виртуальном хостинге). Это при том, что индексов на главной таблице нет - их убирание ускорило вставку больших прайсов в админке.

СКОРПИОН
На сайте с 05.01.2006
Offline
120
#5

maxfx, можно не напрягаться по поводу количества строк в таблицах MySQL.

Проверено на деле. В одной из моих разработок постоянно обрабатываются дестятки миллионов строк. Там ежесуточно на каждой точке возникает от 100 тысяч записей. Чтобы было понятно - это чеки на кассовых терминалах (средняя касса пропускает за сутки около 1000 человек, средний чек - 5-7 позиций, по каждой позиции нужно отдельно сохранить данные об оплате и скидках, средний магазин - 5 касс). В месяц по каждому магазину - миллионы записей. По сети магазинов тем более... Шуршит нормально, я после этого мускул очень зауважал.

З.Ы.

Select и insert - очень быстрые операции в MySQL, delete и update - медленные. При проектировании механизмов обработки обязательно нужно учитывать эту особенность....

• Контекстные ссылки с внутренних страниц навсегда (/ru/forum/370882) • Качественные сайты для заработка на контекстной рекламе и ссылках
topy
На сайте с 28.03.2006
Offline
142
#6

Вообще, читал (источник не дам - не помню, просто поверьте), проводились исследования на тему падения различных серверов баз данных, так вот из платных лучше всех показал себя Oracle, а из бесплатных, правильно, MySQL.

Одним из показателей было одновременное число запросов, Оракл выдерживал порядка 600.000, а на счет Мускуля мне понравился комментарий: "положить не удалось - предел не достигнут", вобщем написано было, что он просто начинал медленнее работать.

Dreammaker
На сайте с 20.04.2006
Offline
570
#7
СКОРПИОН:
insert - очень быстрые операции

Всё же я отнёс бы и инсерт к медленным - при вставке, тоже идёт обновление файла индексов.

dlyanachalas
На сайте с 15.09.2006
Offline
693
#8
maxfx:
1 - легкий - создать одну таблицу с сообщениями

2 - трудный - создать для каждой категории таблицу

Про реляционные б.д. слышали? Есть ещё третий вариант. Создаёте одну таблицу со списком категорий (у неё должно быть числовое ключевое поле с автоинкриментом) и одну таблицу с сообщениями и проиндексированным полем - кодом категории.

dlyanachalas
На сайте с 15.09.2006
Offline
693
#9
Dreammaker:
Всё же я отнёс бы и инсерт к медленным - при вставке, тоже идёт обновление файла индексов.

INSERT - это добавление данных. Обновления индексов этой операции не требуется

Dreammaker
На сайте с 20.04.2006
Offline
570
#10
dlyanachalas:
INSERT - это добавление данных.

Спасибо я думал, что это удаление таблицы ;)

А если серъёзно, то читайте внимательно, что я написал - не обновление индексов, а обновление файла индексов. Каждая вставка - это (для таблиц MyISAM - они более популярны поэтому возьмём их, в других типах таблиц свои особенности хранения индексов) добавление данных в файл индексов, что замедляет операции вставки.

Вставка небольшого количества записей, имхо, по скорости не очень отличается от SELECT`а, но когда количество значительно, в моём случае это приводило к резкому замедлению вставки. Удалении индексов привело к резкому увеличению скорости вставки (~5-10 секунд, против 5 минут при добавлении 300-400 тысяч записей). Ещё вариант, это отключать ключи перед множественной вставкой, а затем восстанавливать их. Но в моём случае я уже точно не помню почему я не применил этот метод - уже год прошёл. Возможно, при включении индексов всё равно замедлялась работа...

Тут нужно написать, что я был не прав в своём посте ,что не уточнил, что для значительного количества записей инсерт при активных индексах становится обузой :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий