Приемлемые параметры работы БД

12 3
[Удален]
1185

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

Для примера можно рассматривать входные условия:

1000/10.000/100.000/1.000.000 записей в БД при размере записи 1кБ

Тип БД может быть любой, ибо не только MySQL существует на свете..

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

П.С. Понятно, что в зависимости от параметров сервера и других условий эта цифра может весьма сильно изменяться, поэтому оценка такого рода достаточно субъективна, но тем не менее даст понять, какой результат никуда не годен, а какой весьма неплох.

[Удален]
#1

Это зависит от корявости запросов и от аппаратной части, ваш вопрос бессмысленный.

Кому-то 20 запросов в секунду хватает, кому то 1000 мало. Естественно, чем больше успевает сделать, тем лучше.

Вы можете сами это все замерить, и зависит от количества целевых юзеров скрипта.

Т.е. если ваша страница генерируется за 0.05 секунды, то больше 20 хитов в секунду (грубо) ваш сайт не выдержит.

[Удален]
#2
neolord:
Это зависит от корявости запросов и от аппаратной части, ваш вопрос бессмысленный.
Кому-то 20 запросов в секунду хватает, кому то 1000 мало. Естественно, чем больше успевает сделать, тем лучше.
Вы можете сами это все замерить, и зависит от количества целевых юзеров скрипта.
Т.е. если ваша страница генерируется за 0.05 секунды, то больше 20 хитов в секунду (грубо) ваш сайт не выдержит.

Мне интересно получить ответ примерно такого рода (примерно):

На сайте стоит база размером Ч мегабайт, в ней ХХХ записей. Простой запрос обычно съедает 0.ХХХ секунд. Считаю это ХХХХ-м результатом. Субъективная оценка тоже интересна.

[Удален]
#3

А я еще раз говорю что это от сервера зависит. Неужели это неочевидно?


SELECT *
FROM `sessions`
WHERE `expires`< 1341111111

Показывает записи 0 - 29 (478,533 всего, Запрос занял 0.0035 сек)

Таблица весит 55 мегабайт. На shared хостинге зенона.

Хорошо это или плохо? Много или мало? Хз.

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#4
neolord:
Хорошо это или плохо? Много или мало? Хз.

Нормально. Все извлечённые записи в таблице почти наверняка лежат друг за другом, поэтому было разовое чтение 30 записей. Ну и индекс в памяти по expires. Нормальное время.

Неизменность точки зрения неизменно порождает иллюзию понимания.
[Удален]
#5

Мне тоже кажется выбрать 30 записей подряд из 55 метров за 0.0035 сек очень даже хорошо.

Слава Шевцов, не могли бы вы тоже пару примеров привести?

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#6
claygod:
Слава Шевцов, не могли бы вы тоже пару примеров привести?

Мог бы. Но не буду. Обычный жёсткий диск позволяет делать где-то около 200 установок головок в секунду. Соответственно, если записи лежат друг за другом, то время запроса 200 записей будет 0.005 сек. Если раскиданы по диску, то 1 сек. Это не зависит от типа базы и это нужно знать, чтобы оптимизировать скорость работы таблиц.

Если страница формируется за время меньшее, чем 0.1 сек, то это не видно пользователю (воспринимается как мгновенно). Если больше 3 сек, то у пользователя начинается беспокойство. Через 10 секунд человек забывает зачем он сюда пришёл и к этому времени большинство уже ушли со страницы.

Ориентируйтесь на вышеописанные параметры, на психофизиологию человека, и будет Вам счастье и объективная картина приемлимых параметров.

[Удален]
#7

Слава Шевцов, спасибо. Я пытаюсь оценить скорость работы своего кода.

Вот при исходных данных: размер базы 4 Мб и 10000 записях скрипт работает вот так:

(время правда - это полностью время генерации, выборка внутри неё).

[Удален]
#8

Ну наверное надо еще думать не только о том, как это воспримет один юзверь, а как это воспримут Н юзеров когда зайдут одновременно. Если страница генерится 0.1 секунд, то очевидно что больше 10 юзеров в секунду сайт не потянет (и то в лучше случае, если они последовательно зайдут). Так что чем меньше, тем лучше.

И еще есть тонкий момент - от объема выбираемых записей то же зависит, и значительную часть времени занимает передача результатов из mySQL сервера в апачевский environment. Так что установки головок - это тоже не главный показатель.

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#9
neolord:
Ну наверное надо еще думать не только о том, как это воспримет один юзверь, а как это воспримут Н юзеров когда зайдут одновременно.

При посещаемости 400 тыс. страниц в сутки или в среднем 5 запросов в сек., действительно, встанет эта проблема.

[Удален]
#10

В среднем тоже лучше не брать, ибо люди обычно заходят неравномерными потоками. При 400 хитов в сутки вероятней всего в вечерние часы наплыв может дойти до 15 хитов в секунду, в то время как с 2х часов ночи и до 9 утра активность юзеров обычно очень низкая

12 3

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