170 похожих чатов

Привет, не приходилось работать с оптимизацией, но на собеседрваниях постоянно

спрашивают.
Есть пример структуры, нужно оптимизировать.


CREATE TABLE `users` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) DEFAULT NULL,
`gender` INT(11) NOT NULL COMMENT '0 - не указан, 1 - мужчина, 2 - женщина.',
`birth_date` INT(11) NOT NULL COMMENT 'Дата в unixtime.'
);
CREATE TABLE `phone_numbers` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`user_id` INT(11) NOT NULL,
`phone` VARCHAR(255) DEFAULT NULL
);

Что обычно делают? Foreign ключ для ид и индексы?

4 ответов

12 просмотров

внешние ключи нафиг не нужны, это средствами ORM обычно делается, индексы заранее тут не проставишь т.к. нет примера выборки. для пола тип можно сменить на tinyint, ещё есть теория что NULL тяжелее и лучше делать просто пустое поле

Я бы внешние ключи проставил, и каскадное удаление из второй таблицы

gender в enum. name меньше по символам. Дата рождения лучше в date В таблице с номерами телефонов убрать Id. Оставить только user_id и phone сделав составные ключи. phone not null и символов меньше. ключи создай внешние.

gender = ENUM, birth_date = DATE, phone_numbers индекс по user_id

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта