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

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

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 10:03 28.06.24 
Компютри и Интернет
   >> Бази данни
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | 3 | 4 | >> (покажи всички)
Тема въпрос за REPLACE  
Авторpip (Нерегистриран)
Публикувано29.10.03 10:20



здравейте,
имам една таблица с 4 колони в която ще има много и чест Insert на данни. с един SQL ще се слагат по няколко реда, т.е. Insert into table values (...), ..., (...);
оказа се обаче че в стойностите които ще се слагат е възможно да има повтарящи се стойности за PRI key-а. така че данните ще се слагат с REPLACE into ...
За да изчистя тези повтарящи се стойности преди да генерирам SQL-а, трябва да се въртят доста цикли в програмата, PRI key-а е и от 4-те колони, като едната е текущото време.

Въпросът ми е, доколко по-бавен е REPLACE от INSERT за подобни чести и масови въвеждания на данни (редовете в таблицата може да станат около 1-2 милиона по някое време), и дали ще е по-ефикасно да ги чистя от scriptа, и след това да си използвам INSERT.
благодаря
:))



Тема Re: въпрос за REPLACEнови [re: pip]  
Авторзъл oйлюфф (Нерегистриран)
Публикувано29.10.03 10:37



много кофти си построил базата
тоя primary key дет си го направил хич не е primary
пък и да включваш вътре текущото време е направо извън пътя
вземи малко ги пооправи тия неща и проблема ти ще се реши



Тема Re: въпрос за REPLACEнови [re: зъл oйлюфф]  
Авторpip (Нерегистриран)
Публикувано29.10.03 10:58



ее, ама много сте бързи с критиката :))
ще обясня малко по-подробно за какво е таблицата, ако и тогава кажете че е зле конструирана, ще преразгледам въпроса.

UserID smallint unsigned PRI
AreaID tinyint unsigned PRI
ActionID tinyint unsigned PRI
Time datetime PRI

AreaID е ID-то на областа на дейстивие, ActionID е ID-то на самото действие.

с тази таблица ще знам Кой, Къде, Кое, Кога е извършил.
т.е. тя е статистическа таблица, в нея ще има Много Insert на данни, но почти никакъв Select.

Ако ми кажете че този PRI кей не е какъвто трябва да е, т.е. ако мога да определя тези неща с тази таблица, като махна някоя колона да не е от PRI-тата, отивам да паля огън за пепел :)
поздрави



Тема Re: Много си ти е добра таблицатанови [re: pip]  
Автор salle (един такъв)
Публикувано29.10.03 11:22



Остави го охлюва - сигурно не си е изпил кафето още.


REPLACE всъщност предствлява DELETE + INSERT

Мисля, че това отговаря напълно на въпроса ти.

За твоята конкретна таблица обаче има обаче още по-елегантен вариант.

INSERT IGNORE INTO ...;

IGNORE означава ако има грешка (дублиран ключ) да продължи нататък без пазарлъци.

Както сигурно вече си забелязял когато вмъкваш по много редове наведнъж и някой от тях се повтаря заявката спира дотам - и нямаш начин да разбереш кой точно редове са минали и кои не. IGNORE моменталон ти решава проблема.


За твоя случай няма никакъв проблем понеже ПК обхваща целия ред.
Което между другото на теория е перфектна таблица та и аз не схващам какво не му харесма на охлюва

Редактирано от salle на 29.10.03 11:23.



Тема Re: Много си ти е добра таблицатанови [re: salle]  
Авторpip (Нерегистриран)
Публикувано29.10.03 11:32



Здравей,
Както винаги си прав.
Принципно знам за Insert IGNORE, че има, само че не знам защо не се сетих за него сам.



Тема Re: питаненови [re: pip]  
Автор phpGuruАдминистратор (минаващ)
Публикувано29.10.03 11:55



според мен Time е времето на действието, нали?

ако е така на мен ми се вижда не възможно да получиш дублиране по primary key

защото никога няма да се случи на същото мясот същото нещо извършено от същият човек, освен ако нямаш различни источници на информация за едно и също събитие и да се припокрива информацията



Тема Re: Много си (НЕ)ти е добра таблицатанови [re: salle]  
Авторзъл oйлюфф (Нерегистриран)
Публикувано29.10.03 12:12



и кво му е добрето на тоя key ако не е тайна???

не е въпроса дали на теория е перфектно а има ли изобщо смисъл да го правиш така....



Тема Re: питаненови [re: phpGuru]  
Авторpip (Нерегистриран)
Публикувано29.10.03 12:12



Съвсем правилно е предположението ти.
в процеса на разработката се получи така, че с едно и също извикване на script, може да се изпълние Едно и Също действие в рамките на това извикване. Например имаш 2 части на страницата където данните за тях се различават, но се взимат от едно и също действие с различни параметри към него.
И тогава се получава това дублиране, тъй като в рамките на извикването на scriptа действието се извиква 2 пъти, с различни параметри към него, Ho тогава времето на извикване на действиеTo съвпада и при двете извиквания. И за това така се получава.



Тема Re: въпрос за REPLACEнови [re: pip]  
АвторWaflata (Нерегистриран)
Публикувано29.10.03 13:34



I az imam podobna tablica za logwane na eventite, ama ne sam turl PRI KEY, shtoto ne wijdam za kakwo mi e...i q zachistwam, na 6 meseca delwam logs sas data tam < ... etc.



Тема Re: питане [re: pip]  
АвторWaflata (Нерегистриран)
Публикувано29.10.03 13:37



shto ne polzwash MICROTIME ili TIMESTAMP nesto ili prosto dobawish oshte nesto deto unikalizira iztochnika, moje da e MD5(RemoteIP . date(). microtime)...prosto predlagam :>




Страници по тази тема: 1 | 2 | 3 | 4 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


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

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