Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 12:00 17.06.24 
Клубове/ Компютри и Интернет / Бази данни Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Re: MySQL Question [re: exodus]
Автор salle (Един такъв)
Публикувано13.02.02 19:34  



А стига бе. Допреди малко обяснявах точно този случай на един в IRC

Значи решенията са 2
1. TEMPORARY TABLE - доста приятно работят в MySQL
2. Денормализирана структура със втора таблица - там пък трябва да се грижиш за синхронизацията, но пък е значително по-бърз вариант при големи таблици.
Малко забележки преди това:
* Избягвай да използваш резервирани думи като timestamp за имена на колони - просто като стил на писане. Спестява главоболия
* Препоръчвам ти enum('no', 'yes') вместо y, n - enum в някои ситуазии може да работи като масив с индекс от 0 . т.е. ще получиш 0->no, 1->yes
* Задължително индексирай timestamp, а също и productID - EXPLAIN ще ти каже защо :)


1. всъщност симулира работата на subselect

1. create temporary table temp select downloadID, productID, max(timestamp) as ts where isUpdate = yes group by productID;

select ... Ами тука се надявам да се сетиш как да направиш join между твоята таблица и temp :)

подсказка select ... from temp, tbl where temp.ts = tbl.timestamp ...;

2. Същото това нещо на практика обаче със "постоянна" таблица
наречена примерно snapshot (downloadID, productID, timestamp)

И всеки път когато правиш INSERT в твоята си таблица (тя вече се превръща в чиста История на Промените)
правиш и REPLACE в Snapshot-a

Това определено печели време

А ако искаш да събереш двата резултата един след друг това не не работа за subselect а за UNION какъвто вече се подържа в mysql 4.0.x :)

Да ти обяснявам ли какво да направиш със 2) или сам ще се сетиш?

Linux is like a wigwam - No Windows, No Gates, Apache inside


Цялата тема
ТемаАвторПубликувано
* MySQL Question exodus   13.02.02 18:05
. * Re: MySQL Question salle   13.02.02 19:34
. * Re: MySQL Question netKo   14.02.02 15:33
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.