1

Это просто, чтобы объяснить, как я думаю, что это, вероятно, работает: Скажем, веб-серверу нужны данные из 10 таблиц. Данные, которые, наконец, будут отображаться на клиенте, требуют какого-то форматирования, которое может быть выполнено либо в базе данных, либо в веб-сервере. Предположим, что время для извлечения необработанных данных для одной таблицы составляет 1 секунду, а время для извлечения форматированных данных за один стол 2 сек (это занимает одну секунду, чтобы форматировать данные для одной таблицы и форматирование может быть легко сделано либо на веб-сервере или в базе данных.)Как веб-сервер взаимодействует с базой данных?

рассмотрим следующие случаи для связи:

Случай 1:

for(i = 0; i < 10; i++) 
{ 
    table[i].getDataFromDB(); //2 sec - gets formatted datafrom DB, Call is completed before control goes to next statement 

    table[i].sendDataToClient(); //0 sec - control doesn't wait for completion of this step 
} 

Случай 2:

for(i = 0; i < 10; i++) 
{ 
    table[i].getDataFromDB(); //1 sec - gets raw data from DB, Call is completed before control goes to next statement 

    table[i].formatData(); //0 sec - will be executed as a parallel process  which takes 1 sec to complete (control moves to next statement before completion) 
} 

formatData() 
{ 
    //format the data which takes 1 sec 
    sendDataToClient(); //0 sec - control doesn't wait for completion of this step 
} 

Предположим, что для отправки данных с веб-сервера клиенту не требуется времени (0 секунд), поскольку он будет постоянным для обоих случаев.

В случае 1 данные для каждой таблицы будут отображаться с интервалом в 2 секунды на клиенте, а полные данные будут составлять на клиенте через 20 секунд.

В случае 2 данные для первой таблицы будут отображаться через 2 секунды, но данные для следующих 9 будут отображаться с секунд 3,4, ..., 11.

Каков правильный способ и как это достигается между популярным веб-сервером и базами данных?

ответ

1

Популярные веб-серверы и базы данных могут работать в любом случае в зависимости от того, как приложение написано.

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

Многие рамки для веб-приложений сделают для вас большую часть работы по форматированию.

Смежные вопросы