Вариант 1 (класс или структура) при сохранении изменяемого состояния, потому что вам нужны другие экземпляры.
Вариант 2 (глобальные переменные с областью), если вы хотите сохранить статические переменные, потому что это быстрее и использует меньше памяти.
Глобальное состояние обычно считается «плохой». Трудно думать, вызывает проблемы, но иногда неизбежно.
SomeManager
. SomeManager
хранит глобальное состояние. someVariable
является константой. static var sharedManager = SomeManager()
; вы используете только ту память, которая вам действительно нужна. sharedManager
в память, а затем обращаться к ее члену someVariable
. Вы прямо подходите к someVariable
. В Варианте 2 вы можете создать SomeManager
, даже если он ничего не делает. Вы можете предотвратить это, повернув SomeManager
в перечисление без случаев.
enum SomeManager {
static var someVariable: String?
}
Вы все еще можете сделать это:
SomeManager.someVariable
, но вы не можете этого сделать
let manager = SomeManger()
О Вашем первом вопросе эффективном максимальном размере для база данных обычно определяется операционной системой, конкретно MySQL Server размера файла будет в состоянии создать, не самим MySQL Server. Те пределы играют большую роль в пределы размера таблицы . И MyISAM работает по-другому по сравнению с InnoDB. Таким образом, любые таблицы будут зависеть от тех пределов.
при использовании InnoDB у Вас будет больше опций при управлении размерами таблицы, изменение размеры табличной области является опцией в этом случае, поэтому если Вы планируете изменить размеры его, это - способ пойти. Поглядите в , таблица полна ошибочная страница.
я не уверен реальное рекордное количество каждой таблицы, учитывая всю необходимую информацию (ОС, тип Таблицы, Столбцы, тип данных и размер каждого и и т.д....), И я не уверен, легко ли эту информацию вычислить, но я видел простую таблицу с приблизительно 1bi, записи в паре случаев и MySQL не сделали сдался.