Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выдержит ли mysql, Большого кол-ва полей ? 
:(
    Опции темы
Рыжий
Дата 14.2.2007, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



Если у меня в таблице users, где хранятся данные юзеров аж 25 полей информации. 
Таблица – как вы сами понимаете очень востребована, и обращаться к ней будут часто. Да и разрастись она должна быстро.

Как это может угрожать производительности скрипта? 

Для обращения я использую PDO.

PM MAIL ICQ   Вверх
Бонифаций
Дата 14.2.2007, 04:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



25 это небольшое количество полей. Такое количество полей практически никак не влияет на скорострельность


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
mishaSL
Дата 14.2.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Рыжий, главное грамотно подбери типы данных и все будет хорошо.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Рыжий
Дата 15.2.2007, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



Хорошо, постараюсь.
PM MAIL ICQ   Вверх
skyboy
Дата 15.2.2007, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Рыжий, искренне надеюсь, что со временем не окажется, что в половину из этих полей придется пихать данные массивами, а вторая половина может быть NULL smile 
Естественно, всё зависит от того, что хранится в тех 25 полях и как ты эти данные собираешься обрабатывать  smile 
PM MAIL   Вверх
Gold Dragon
Дата 15.2.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



вообще-то меня это тоже волнует... У меня сейчас есть таблица в которой порядка 40 полей, в половине из них небольшие массивы.

Как по другому сделать не представляю. Эти поля - описание объекта.

Единственный вариант - разделить таблицы, но тогда придётся делать сложные запросы по 3-м - 4-м таблицам.


Есть ли где в мануале какие либо ограничения по этому вопросу?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
SamDark
Дата 15.2.2007, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 2
Всего: 38



Gold Dragon, 
Лучше нормализовать. Будет меньше и универсальнее.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
skyboy
Дата 15.2.2007, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Gold Dragon, ты бы задачей поделился...
а так, в общем виде, нормализация с последующими inner join'ами по ключам мне видится более быстрым делом, нежели работа с не-атомарными полями средствами СУБД..
да и 3-4 join'a - это, в принципе, не предел. насколько я помню, ограничения в СУБД при конфигурировании накладываются на количество строк, выбираемых join'ами на промежуточных этапах отбора, а не на уровень вложенности...
PM MAIL   Вверх
Gold Dragon
Дата 15.2.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



Цитата(SamDark @  15.2.2007,  10:12 Найти цитируемый пост)
Лучше нормализовать. Будет меньше и универсальнее.

Вот смотрите...

есть объект
- id
- назвние
- адрес .....
- что-то ещё такое

а потом
- стены Array(
          - материал, 
          - цвет, 
          - высота, 
          - ширина
          -.....)
- проводка Array(
          - материал, 
          - сечение, 
          - длина, 
          - оплётка
          - ......)
- режим работы Array(
         - понедельник Array(
              - начало
              - конец
              - перерыв
              - выходной
              - ....)
           - вторник Array(.....)

и так далее

я сначала делал все характеристики в разных таблицах, но с запросами целая беда. А теперь всё в одной таблице. Одна выборка и все данные "в кармане".
Проблем с торможением, зависанием и т.п. не заметил, вот и оставил одну таблицу. Просто кроме этой таблицы есть ещё целая куча.


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Dremlin
Дата 15.2.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Quo vadis?
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 21.9.2006
Где: Киев

Репутация: 2
Всего: 4



Gold Dragon, а если, например, у объекта внешние стены из бетона, а внутренние из ценных пород древесины, проводка разных типов и режим работы зависит от четности недели и т.д. Как будешь хранить такую инфу?

Цитата(Gold Dragon @  15.2.2007,  12:12 Найти цитируемый пост)
я сначала делал все характеристики в разных таблицах, но с запросами целая беда.

да никаких там бед не должно быть: пара джойнов, пара условий, группировочка - готово.

ЗЫ. SQL без JOIN, как пиво без газа  smile 
--------------------
Каждый дурак знает, что до звезд не достать, а умные, не обращая внимания на дураков, пытаются...
PM MAIL   Вверх
skyboy
Дата 15.2.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Dremlin @  15.2.2007,  12:24 Найти цитируемый пост)
SQL без JOIN, как пиво без газа 

лучше так: как безалкогольное пиво, как надувная женщина, как искусственная елка... smile
Цитата(Gold Dragon @  15.2.2007,  12:12 Найти цитируемый пост)
          - материал, 
          - сечение, 
...
          - оплётка

эти данные характеризуют класс(или "марку" - не помню, как определяется) провода. потому могут быть определены одним символьным кодом. а символьный код вариативной длины в качестве ключа - коряво. потому надо хранить в отдельной таблица, а здесь - только ссылку на код провода. 
это к 
Цитата(Dremlin @  15.2.2007,  12:24 Найти цитируемый пост)
а если, например, у объекта внешние стены из бетона, а внутренние из ценных пород древесины, проводка разных типов и режим работы зависит от четности недели и т.д. Как будешь хранить такую инфу?

т.е., судя по всему, надо нормализовать.
PM MAIL   Вверх
Gold Dragon
Дата 15.2.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



ну народ... я утрировано сказал... smile
В своей массе отдельные характеристики не повторяются, по этому использовать ключи из другой таблицы не целесообразно.

что касается 
Цитата(Dremlin @  15.2.2007,  13:24 Найти цитируемый пост)
а внутренние из ценных пород древесины, проводка разных типов и режим работы зависит от четности недели и т.д.
 всё предусмотрено  smile есть специальное поле для пояснений и комментариев "PS".

Если мне рассовывать всё по разным таблицам, то таблиц будет порядка 25-30.  И ещё плюс других штук 15... Нафига такая база... запутаешься smile А так всё лежит в одном месте... Если это дозваляется в MySQL, то почему бы и нет..



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
skyboy
Дата 15.2.2007, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Gold Dragon @  15.2.2007,  14:17 Найти цитируемый пост)
таблиц будет порядка 25-30.  И ещё плюс других штук 15... Нафига такая база... запутаешься

у меня в последнем проекте было 122 таблицы. и я не хвастаюсь.просто констатирую факт. и не запутался.
дело не в количестве. дело, в первую очередь, в систематизированном подходе к наименованию. если у тебя одно и то же поле называется по-разному(например, главный ключ в одной таблице - просто id, а внешний ключ в другой таблице  - уже "idsomething"), то работать сложно. если у тебя куча таблиц относятся к одному и тому же - лучше дать им одинаковые префиксы... 
У меня вот такой подход:
1. одинаковые поля называются одинаково в разных таблицах(idtopic у меня и в таблице topics, и в таблице topics_names и в таблице topics_regions означает одно и то же, хранит в одинаковом виде, и называется одинаково - не запутаешься)
2. "групповые" таблицы(имеющие отношение не ко всему проекту, а к отдельной части) имеют одинаковый префикс("sort_heads", "sort_heads_names", "sort_titles", "sort_functions") - набирать дольше(если нет автозавершения в оболочке-администраторе smile ), но названия выглядят однозначно и функционал даже части запроса очевиден.
3. таблицы, реализующие отношения "многие-ко-многим" называются так, чтоб включать в себя название обоих типов объектов("rows_names","rows_regions","rows_directions") - пожалуй, тут всё же нужен элемент привыкания, потому как связь между странами и полосами может называться как "rows_regions", так и "regions_rows", но если на первое место вставлять более "специфический" объект(не могу понятней объяснить smile )
не обязательно - при такой; при любой системе наименований руки будут набирать  названия полей и таблиц практически самостоятельно, да и читать запросы будет намного проще smile И уж тем более, не будешь сторониться join'ов smile
PM MAIL   Вверх
Gold Dragon
Дата 16.2.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



да это всё понятно.. просто именно в этом проекте для меня так делать удобнее.
Да и вопрос малость другой... Выдержит ли MySQL? Если я правильно понял, специально этим вопросом никто не занимался и глюков замечено не было. Но, если честно, хотелось бы узнать предел.. в доках ничего не нашёл (может просто плохо читал smile )


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
SamDark
Дата 16.2.2007, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 2
Всего: 38



Gold Dragon, 
Так попробуй. Берём ab и вперёд.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.