Должен ли я использовать значение по умолчанию как none или 0000-00-00 00: 00: 00
Если «дата отсутствует», используйте значение NULL.Обнуление даты и времени просто означает, что вам нужно проверять это вместо NULL, но проверки будут выполняться медленнее, и вы тратите пространство / пропускную способность для его хранения / извлечения.
Должен ли я добавлять индексы во все мои столбцы, где они появляются в моих запросах Предложение WHERE?
Нет, добавлять индексы только в те столбцы, которые имеют наибольшее число уникальныхценности.Я не знаю, стал ли планировщик запросов MySQL лучше, чем раньше, но вы также можете повысить производительность, убедившись, что эти столбцы появляются первыми в ваших предложениях WHERE.Причина заключается в том, что после того, как вы ограничили результаты запроса небольшим количеством строк одним предложением where, остальные предложения можно проверить с линейным сканированием так же быстро, как и с индексами, поэтому избыточные индексы простозагрузка диска и (что особенно важно) оперативной памяти.
Желательно ли также устанавливать внешние ключи на ПЕРВИЧНЫХ ключах, это ускорит мои mysql JOINS?
Нет, цель внешних ключей - наложить ограничения на достоверность ваших данных, никак не связанные с производительностью запросов.При этом вам по-прежнему следует использовать внешние ключи, где это возможно, поскольку предоставляемые гарантии значительно упрощают управление вашими данными.