Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Базы данных (http://www.flasher.ru/forum/forumdisplay.php?f=22)
-   -   MySQL: char и text (http://www.flasher.ru/forum/showthread.php?t=32703)

metton 06.06.2002 04:50

MySQL: char и text
 
У меня вот такой вопрос возник...
По MySQL...
Например, мне нужно в таблице базы данных текстовое поле, котрое превышает размером char, но намного меньше максимального размера text...
если я, например, буду в text пихать максимум по 1000-5000
символов, будет ли это затормаживать работу БД или каким-либо другим образом влиять на неё?
спасибо...

Самурай 06.06.2002 14:09

очень сомневаюсь...

metton 08.06.2002 02:55

лююююдии....

Crazy 08.06.2002 04:22

Использование типа text будет тормозить процесс поиска. Если для тебя это окажется принципиальным (в чем лично я сомневаюсь) -- вынеси text-поля в отдельную таблицу.

Это особенно выгодно, если ты считываешь зараз лишь небольшое число text-полей из базы с большитм количеством записей и выборка производится по достаточно сложным выражениям в where. Если же у тебя основная операция -- выборка по первичному ключу или, наоборот, выборка всех записей, то это никакого эффекта не даст и лучше оставить все как есть.

Кстати, часто хорошим решением является использование нескольких char'овых полей для хранения одного значения, порезанного на куски ("вечная память 3НФ"). Это тоже имеет свои плюсы и минусы и нужно экспериментально проверять, чтор в большей степени скажется в твоем случае.

metton 08.06.2002 04:42

2Crazy
В моём конкретном случае мне нуно хранить краткое описание раздела сайта...
если text, то полная свобода (но много свободного места в ячейке)...
если char, придётся немного укоротить текст...
что лучше использовать: text или char
???

Crazy 08.06.2002 05:43

Ты не сказал самого главного: как ты будешь работать с этой таблицей. Какие запросы строить?

metton 09.06.2002 03:14

Короче такая фигня:
у мя на сайте разделы сайта (их названия, описания, ключевые слова и т.д., родительский раздел) будут в БД
ну вот, соответственно при выборе люього раздела сайта пользователь переходит на страницу показа раздела (общую для всех разделов), с передачей ей некоторой переменной, чтоб эта страница, показала именно этот раздел(выбранный юзверем): т.е. его подразделы и краткое описание...

Crazy 09.06.2002 03:26

Насколько я понял, длинный текст ты извлекаешь только для текущего раздела. Это один запрос. И уже другмим запросом ты извлекаешь несколько записей с описанием вложенных разделов.

Разумно разделить информацию на две таблицы: в одной будут храниться только описания в text'е (ключ -- код раздела), а в другой -- информация о дочерних разделах (индексируется по коду родительского раздела).

metton 09.06.2002 03:39

Т.е. нуно всю инфу кроме описания о разделе - в одну таблицу
описание - в другую?
В таком случае на скорость влиять не будет, так?

Crazy 09.06.2002 04:28

Именно. Точнее, будет. Теоретически. :) На практике эта разница будет практически неизмерима.


Часовой пояс GMT +4, время: 01:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.