Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: по базе данных [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Без описания
Champion Супермодератор
Отправлено: 07 Февраля, 2009 - 16:51:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Тем, что проверять надо, успешно прошла вставка или нет.
 
 Top
LONGMAN
Отправлено: 18 Февраля, 2009 - 10:41:53
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Февр. 2009  
Откуда: Tbilisi, Georgia


Помог: 0 раз(а)




Как лучше спроектировать таблицу для хранения настроек? Сделать столько поле сколько настроек или две поле имя настройки - значение? И какие флаги лучше поставить
 
 Top
valenok
Отправлено: 18 Февраля, 2009 - 15:36:06
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




LONGMAN я делаю два поля параметр-значение, а флаги поставьте красный и синий


-----
Truly yours, Sasha.
 
My status
 Top
LONGMAN
Отправлено: 18 Февраля, 2009 - 20:46:18
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Февр. 2009  
Откуда: Tbilisi, Georgia


Помог: 0 раз(а)




valenok, не люблю я красных флагов, коммунизма напоминает Улыбка Я говорил на счёт типов и индексов
CODE (text):
скопировать код в буфер обмена
  1. CREATE TABLE `setting` (
  2.   `name` char(50) NOT NULL default '',
  3.   `value` char(50) NOT NULL default '',
  4.   PRIMARY KEY  (`name`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=1;
Эта таблица оптимально спроектирована?
 
 Top
valenok
Отправлено: 18 Февраля, 2009 - 22:50:22
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




да как мы можем сказать если понятия не имеем какие настройки там хранить собираетесь ?
В конце концов можете просто пришпилить каждой настройке по номеру и сделать таблицу
Номер_настройки \ значение
1 \ #FFFFFFF
2 \ 0
3 \ 1663,51 руб.
4 \ Здравствуйте уважаемый посетитель.

А в скрипте просто обращаться к полю с настройкой номер 1 как к цвету фона главной страницы.
Это вам решать, в зависимости от того, какие настройки и как вы их собираетесь там хранить


-----
Truly yours, Sasha.
 
My status
 Top
LONGMAN
Отправлено: 19 Февраля, 2009 - 00:11:43
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Февр. 2009  
Откуда: Tbilisi, Georgia


Помог: 0 раз(а)




Ладно, поставлю вопрос иначе. Я хочу хранить в параметрах тексты и цифры не более 20 символов. Параметров будет больше 30. Запрос на эту таблицу будет в каждом сценарий. Как вы спроэктировали бы такую таблицу? Чтобы он работал быстро
 
 Top
valenok
Отправлено: 19 Февраля, 2009 - 08:25:45
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




можешь всё таки сделать так:
PHP:
скопировать код в буфер обмена
  1.  
  2. +---------------+---------------+---------------+-----
  3. |  Parametr1    |   Parametr2   |    Parametr3  |  Par..
  4. +---------------+---------------+---------------+-----
  5. |  value1       |    Value2     |  Value3       |  Val..
  6. +---------------+---------------+---------------+-----


Cъэкономишь цикл на обработке всех строк и сможешь получить все настройки в один массив с
mysql_fetch_assoc и подобрать каждому полю подходящий тип данных.


-----
Truly yours, Sasha.
 
My status
 Top
LONGMAN
Отправлено: 19 Февраля, 2009 - 13:17:35
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Февр. 2009  
Откуда: Tbilisi, Georgia


Помог: 0 раз(а)




Поле parameter сделать Primary Key не убыстрит выборку?
 
 Top
LONGMAN
Отправлено: 19 Февраля, 2009 - 16:21:06
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Февр. 2009  
Откуда: Tbilisi, Georgia


Помог: 0 раз(а)




Опс, не доехал сначала Улыбка Значит сделать столько поле сколько настроек? А в таблице нужно сделать поле на пример
CODE (text):
скопировать код в буфер обмена
  1. id tinyint(1) UNSIGNED NOT NULL default '1' (PRIMARY KEY)
чтобы потом выбрать так
CODE (text):
скопировать код в буфер обмена
  1. SELECT * FROM table WHERE id=1 LIMIT 1
Так не будет быстрее? Или без поле id
 
 Top
valenok
Отправлено: 19 Февраля, 2009 - 18:01:30
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




LONGMAN зачем тебе индекс если тебе выбирать то и неизчего ?
Там всего одна строка. Лишний индекс и лишнее поле просто.


-----
Truly yours, Sasha.
 
My status
 Top
LONGMAN
Отправлено: 19 Февраля, 2009 - 18:22:17
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Февр. 2009  
Откуда: Tbilisi, Georgia


Помог: 0 раз(а)




valenok, спасибо большое. Есть ещё несколько вопросов по оптимизацию базы данных и запросов..
1. С каком полям работает MySQL (MyISAM) быстрее, char, varchar или text? И максимум сколько символов можно вставить в поле char?
2. В таблице где более 1000 записи и есть поле id (auto_increment, primary key), убыстрит ли выборку добавление LIMIT 1 после запроса SELECT (UPDATE) from table WHERE id=500?
 
 Top
Roler
Отправлено: 19 Февраля, 2009 - 19:34:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


Помог: 1 раз(а)




Цитата:
2. В таблице где более 1000 записи и есть поле id (auto_increment, primary key), убыстрит ли выборку добавление LIMIT 1 после запроса SELECT (UPDATE) from table WHERE id=500?

Разумеется.
 
 Top
valenok
Отправлено: 19 Февраля, 2009 - 19:37:17
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




LONGMAN с char потому что самое которкое.
о типах: http://dev[dot]mysql[dot]com/doc/refman/5[dot]0/en/char[dot]html

2. можно поискать, но так как программисты работащие над mysql не глупые, смею полагать что дальнейшего поиска по таблице не будет и большой разницы в скорости не увидишь.

Дело в том, что 1000 записей это не такое большое количество записей чтоб вообще увидеть разницу
даже если она существует. Проведи эксперимент на таблице с 1 000 000 записей.


-----
Truly yours, Sasha.
 
My status
 Top
LONGMAN
Отправлено: 20 Февраля, 2009 - 07:47:49
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Февр. 2009  
Откуда: Tbilisi, Georgia


Помог: 0 раз(а)




Провёл эксперимент на таблице с 1000000 записью и особого отличия всёравно не увидел. Если знаете из php можно увидеть результаты комманды EXPLAIN и PROCEDURE ANALYZE()?
 
 Top
Champion Супермодератор
Отправлено: 20 Февраля, 2009 - 08:38:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Roler пишет:
Цитата:
2. В таблице где более 1000 записи и есть поле id (auto_increment, primary key), убыстрит ли выборку добавление LIMIT 1 после запроса SELECT (UPDATE) from table WHERE id=500?

Разумеется.
Вот и нет. Если поле уникальное, то LIMIT ни на что не повлияет.
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB