Который лучше: mysql_connect или mysql_pconnect

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

Одно дополнительное ограничение для char состоит в том, что его размер всегда - 1 байт, или CHAR_BIT биты (отсюда имя).

Минимальные диапазоны требуемый стандартом (страница 22):

и Диапазоны Типа данных на [1 128] MSDN:

  1. signed char:-127 к 127 (примечание, не-128 к 127; это размещает 1's-дополнение и платформы знака-и-величины)
  2. unsigned char: от 0 до 255
  3. "плоскость" char: тот же диапазон как signed char или unsigned char, определенный реализацией
  4. signed short:-32767 к 32 767
  5. unsigned short: от 0 до 65 535
  6. signed int:-32767 к 32 767
  7. unsigned int: от 0 до 65 535
  8. signed long:-2147483647 к 2147483647
  9. unsigned long: от 0 до 4294967295
  10. signed long long:-9223372036854775807 к 9223372036854775807
  11. unsigned long long: от 0 до 18446744073709551615

C++ А (или C) реализация может определить размер типа в байтах sizeof(type) к любому значению, целых

  1. , выражение sizeof(type) * CHAR_BIT оценивает достаточно к многому битов высотой для содержания требуемых диапазонов, и
  2. , упорядочивание типа все еще допустимо (например, sizeof(int) <= sizeof(long)).

определенные для фактической реализации диапазоны могут быть найдены в [1 121] заголовок в C, или в C++ (или еще лучше, шаблонными std::numeric_limits в [1 124] заголовок).

, Например, это - то, как Вы найдете максимальный диапазон для [1 125]:

C:

#include 
const int min_int = INT_MIN;
const int max_int = INT_MAX;

C++ :

#include 
const int min_int = std::numeric_limits::min();
const int max_int = std::numeric_limits::max();

10
задан Kwame 27 August 2009 в 12:53
поделиться

3 ответа

Если вы собираетесь написать веб-страницу, нет необходимости в постоянном соединении. Это требует слишком много ресурсов. Используйте mysql_connect. Сведите к минимуму время, в течение которого ваше соединение с базой данных открыто и не используется, насколько это возможно. Откройте, принесите то, что хотите, закройте. Необязательно оставаться открытым, пока пользователи просто читают. В конечном итоге соединение будет использовано, если они ответят - ВСТАВИТЬ / перейти на другую страницу.

Здесь приведены некоторые положительные моменты о НЕ ИСПОЛЬЗОВАНИИ постоянного соединения в веб-приложениях

  • Когда вы блокируете table, обычно он разблокируется, когда соединение закрывается, но поскольку постоянные соединения не закрываются, любые таблицы, которые вы случайно оставить заблокированным останется заблокированным, и единственный способ разблокировать их - дождаться тайм-аута соединения или убить процесс. Та же проблема с блокировкой возникает и с транзакциями. (Видеть комментарии ниже от 23 апреля 2002 г. и 12 июля 2003 г.)

  • Обычно временные таблицы удаляются при закрытии соединения, но, поскольку постоянные соединения не закрываются, временные таблицы не так временно. Если вы не удаляете временные таблицы явно при готовы, эта таблица уже будет существовать для нового клиента, повторно использующего такое же соединение. Та же проблема возникает при настройке сеанса переменные. (См. Комментарии ниже от 19 ноября 2004 г. и 7 августа 2006 г.)

  • Если PHP и MySQL находятся на одном сервере или в локальной сети, время соединения может быть незначительным, и в этом случае нет преимущества. к постоянным соединениям.

  • Apache плохо работает с постоянными соединениями. Когда он получает запрос от нового клиента, вместо использования одного из доступные дочерние элементы, у которых уже открыто постоянное соединение, имеет тенденцию порождать нового потомка, который затем должен открыть новую базу данных подключение. Это вызывает лишние процессы, которые просто спят, тратя ресурсы и вызывая ошибки, когда вы достигаете максимума соединений, плюс это сводит на нет все преимущества постоянных соединений. (См. Комментарии ниже от 3 февраля 2004 г. и сноску на http://devzone.zend.com/node/view/id/686#fn1 )

19
ответ дан 3 December 2019 в 18:35
поделиться

Вам также следует посмотреть mysqli и pdo . mysql-extension довольно старое и не поддерживает подготовленные операторы mysqli. А pdo поддерживает несколько баз данных без изменения запросов.

1
ответ дан 3 December 2019 в 18:35
поделиться

You should use mysql_pconnect on highly loaded sites, thus the connection would be reused. This may improve speed up to twice...

But, if you do not expect high loads; use normal connect for reasons Svetlozar Angelov mentioned above.

1
ответ дан 3 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: