[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Индекс полей
maximka787
Парни привет. Вопрос не сложный, но не хочу рыть себе яму уже сейчас, не до конца проработав проект. Есть таблица:
CREATE TABLE `tab` (
`item` smallint(5) unsigned NOT NULL,
`param` tinyint(2) unsigned NOT NULL,
`val` tinyint(3) unsigned NOT NULL,
KEY `item` (`item`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8;
Данные:
1 | 1 | 135
1 | 2 | 25
1 | 3 | 245
1 | 4 | 147
1 | 5 | 10
1 | 6 | 0
2 | 1 | 144
2 | 2 | 20
2 | 3 | 87
2 | 4 | 100
2 | 5 | 12
2 | 6 | 345

`item`-ов разных! будет около 10.000, `param` - сейчас 55. Итого 10.000 * 55 = ~550.000 строк.

Изменение значений `val` проходит так:
1) DELETE FROM `tab` WHERE `item` = '1'
2) INSERT INTO `tab` VALUE (1,1,135), (1,2,25), (1,3,245)...

При удалении строк происходит фрагментация. Даже сейчас phpmyadmin выводит уже таблицу в разнобой, (как-то хаотично все) Я боюсь что будут еще и проблемы со скоростью потом. Делать UPDATE существующих строк думаю дольше, чем удалить и добавить.

Скажите, это лучшая структура таблицы для моего случая или тут лучше сделать иначе?
Может добавить к таблице колонку `id` AUTO INCREMENT ?? но толку от этого поля нет.

_____________
..Работает - не трогай!
Valick
Цитата
Делать UPDATE существующих строк думаю дольше, чем удалить и добавить.

нет
Таблица неверно сделана, тут надо примари кей на оба поля `item` `param`, ну или на 2 таблицы разделять

_____________
Стимулятор ~yoomoney - 41001303250491
T1grOK
Цитата (maximka787 @ 22.05.2014 - 12:16)
`item`-ов разных! будет около 10.000, `param` - сейчас 55. Итого 10.000 * 55 = ~550.000 строк.

550к это детский лепет для таблицы с фиксированными полями числового типа.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
maximka787
Valick
Проверил. Вроде бы нормально работает. Но вот только для чего ключ из двух полей? Чтоб из индекса данные брались? Есть ли разница сильная с моим примером?

T1grOK
Хорошо. А вообще фрагментация, сортировка и прочее, ранее мне неизведанное - не грозит проекту, если например за 1.000.000 вылезет количество строк?

_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.