SQLinfo.ru - Все о MySQL Highload++ 2017

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.09.2017 20:38:10

buslikdrev
Участник
Зарегистрирован: 05.07.2017
Сообщений: 9

Пустые ячейки, правильная выборка (оптимизация)

Здравствуйте, я задался вопросом, как лучше и правильно сделать.

А именно, есть модуль (опции) у которого есть таблица из 4 столбцов, где 3 столбца это id (порядковый номер строки, id товара и id модуля)
Я делаю модуль в котором будут другие значения не связанные со значениями первого модуля (дополнительно 7 столбцов), а как дополнение к тому модулю. При этом планирую расширение функций, внесение новых столбцов.

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

2. Какая выборка данных быстрее "Select * Form" или с указанием нужных столбцов "Select stolb1, stolb2 Form" (на что больше тратит время, на вывод всей строки или он отсеивает ненужные, или как)? При этом в стандартном модуле выборка идёт так "Select * Form", поэтому не хочу добавлять столбцы в стандартную таблицу, чтобы в пустую не теряло время на вывод ненужных ему столбцов от моего модуля, чтобы не вносить изменения в оригинальный запрос.

3. Как влияет пустая ячейка на работу БД, если, например, их будет тысячи, создавать дополнительный вес?

4. Где быстрее будет искать, в одной таблице в 10000 строк или в двух по 5000 строк?

Отредактированно buslikdrev (16.09.2017 21:55:17)

Неактивен

 

#2 17.09.2017 14:40:25

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3765

Re: Пустые ячейки, правильная выборка (оптимизация)

Единого решения нет, но чаще делают 2 таблицы. Все зависит от частоты запросов каждого типа.

Пустые колонки занимают какое-то место (в зависимости от типа данных)

SELECT * в любом случае плохая практика.

Неактивен

 

#3 03.10.2017 20:21:09

buslikdrev
Участник
Зарегистрирован: 05.07.2017
Сообщений: 9

Re: Пустые ячейки, правильная выборка (оптимизация)

rgbeast написал:

Единого решения нет, но чаще делают 2 таблицы. Все зависит от частоты запросов каждого типа.

Пустые колонки занимают какое-то место (в зависимости от типа данных)

SELECT * в любом случае плохая практика.

Спасибо за ответ, я так и сделал, не создал на перёд таблицы, а сделал только то, что нужно и не буду делать, чтобы пустые ячейки висели. Также сделал отдельную таблицу, чтобы при большом количестве товаров меньше было строк.
При выборке указал то, что нужно, а не вывод всего.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson