|
Тема
|
Бавния MySQL под Windows
|
|
Автор |
Lizard (приятел) |
Публикувано | 02.07.03 10:13 |
|
Здравейте!
Имам питане за MySQL (под Windows)
Като пратя съм заявка към MySQL-a да изтрие от една таблица (в която има около 2 500 000 записа) някакви записи
нещо такова:
delete from ... where field1<>X
заявката се бави страшно много, а в същото време като погледна в TaskManager-a "mysqld-nt.exe" заема между 5 и 15 % от ресурсите на процесора
Има ли начин да забързам нещата?
10х
| |
Тема
|
Вероятно диска ти е бавен
[re: Lizard]
|
|
Автор | Gogo (Нерегистриран) |
Публикувано | 02.07.03 14:13 |
|
и процесора трябва да изчака поредната порция информация преди да продължи да работи. /Погледни светодиода за хард диска/
Можеш да ускориш нещата като минеш на по-бърз диск: повече обороти на диска, по-бърз трансфер на данните с дъното, по-голям кеш на диска.
Може да си сложиш нов диск и на него да запишеш само фаиловете от базата с данни. Новия диск е желателно да е на отделен IDE канал или SCSI диск.
Поглени колко памет имаш и колко ползваш в момента. Ако ползваш 'swap' памет работата се забавя драстично. Добави памет ако е необходимо. По принцип повече памет винаги помага защото се увеличава буфера за дискови операции.
Дотук с харченето на пари. Ето и безплатни идеи.
Обмена се забавя и ако файла е дефрагментиран. Опитай да дефрагментираш диска. Ако имаш свободен партишън/партишани можеш да го форматираш и да запишеш там фаиловете на базата. При възможност данните и индексите на отделни партишъни. Това няма да ускори работата но ще намали бъдещата фрагментация на файловете.
Съветите ми са от общо естество за всички видове бази с данни. Надявам се някой друг да те посъветва конкретно за MySQL (под Windows).
Успех!
| |
Тема
|
Re: Вероятно диска ти е бавен
[re: Gogo]
|
|
Автор |
Lizard (приятел) |
Публикувано | 02.07.03 14:26 |
|
Благодаря за съветите
Обаче:
Диска ми е бърз (7200)
Памет 256 МВ (а в TaskManager-а казва, че процеса заема най-много 15 МВ)
Така че, мисля, че проблема не е в дисковите операции и недостиг на памет
Това разбира се е по мое мнение
Архивиращата ми програма например използва почти 100% от CPU-то когато архивира и затова си мисля, че ако има начин да му кажа на MySQL да ползва повече ресурси... ама знам ли? Не ги разбирам тези неща. И затова питам
| |
Тема
|
Не само това!
[re: Lizard]
|
|
Автор |
Dakota (erotoman) |
Публикувано | 02.07.03 15:15 |
|
При тежка заявка ми забива движението на мишката...все едно умира PC-то, освен това всякакви други връзки към базата от други приложения са невъзможни! (или траяр безкрайно дълго). Под UNIX няма такова поведение.
"If a man hasn't discovered something that he will die for, he isn't fit to live."
| |
Тема
|
Re: Не само това!
[re: Dakota]
|
|
Автор |
Lizard (приятел) |
Публикувано | 02.07.03 15:19 |
|
"Съвършено верно"
ама дали може да се оправи някак
| |
Тема
|
Още можеш да опиташ
[re: Lizard]
|
|
Автор | Gogo (Нерегистриран) |
Публикувано | 02.07.03 16:41 |
|
в таск менажера да кликнеш с десен бутон върху процеса и да установиш
по-голям преоритет. Това едва ли ще помогне много но все пак опитай.
Също така в систем пропърти на компютъра избери адвансед и избери типа на компютъра бекграунд сервисес. Това може и да те накара да рестартираш компютъра, но вероятно ще даде по-добър ефект. Просто в този случай се отделя повече памет за кеш на дисковите операции.
Във втория постинг споменаваш компресирането ти запълва процесора до 100% така е защото повечето време процесора ползва да мачка данните и от време на време да прочете нови данни. Докато при търсенето в базата / изтриване / актуализиране процесора само преглежда данните и чака нови данни да се прочетат от диска за да провери и тях. А същевременно към диска се подават данни за запис към различни логове на базата с данни и Виндоуса.
Понеже споменаваш само 15 МВ за сървърния процес. провери как може да се увеличи паметта на инстанцията и на пула при MySQL. Оределено ще работи по-добре ако му заделиш 150 МВ. За съжаление не знам това как става
Може да се наложи преинсталация
За Дакота . UNIX и Windows са две различни архитектури и концепции на ОС.
Може да си чувал вица за сина на Бил Гейтс който го попитал:
" Тате, тате вярно ли е че Windows е многозадачна операционна система?"
" Вярно е сине. Почакай да форматирам тази дискета и ще ти покажа."
| |
Тема
|
Re: Още можеш да опиташ
[re: Gogo]
|
|
Автор | JohnT (Нерегистриран) |
Публикувано | 03.07.03 13:56 |
|
Баси... само ас ли съм късметлиата ;)
само при мене ли мъсял-а работи перфектно под виндовс ;)))
| |
Тема
|
Re: Бавния MySQL под Windows
[re: Lizard]
|
|
Автор |
salle (член) |
Публикувано | 03.07.03 20:55 |
|
Я провери какво ще ти каже EXPLAIN
EXPLAIN SELECT ... WHERE field1 <> X;
EXPLAIN SELECT ... WHERE field1 > X;
EXPLAIN SELECT ... WHERE field1 < X;
Ако field1 е индексирано ще установиш, че първата заявка не използва индекс, а поне една от другите две ще го използва. Тъй, че най-вероятно ако разбиеш твоята DELETE на две ще стане по-бързо
| |
Тема
|
Re: Още можеш да опиташ
[re: JohnT]
|
|
Автор |
Dakota (erotoman) |
Публикувано | 04.07.03 11:20 |
|
То си зависи от заявките де...аз като пусна един JOIN между една таблица с 1600000 реда и една с 300000...и ако ще и 100 индекса да наблъскам пак си забива всичко.
"If a man hasn't discovered something that he will die for, he isn't fit to live."
| |
Тема
|
Re: Вероятно диска ти е бавен
[re: Lizard]
|
|
Автор |
Ulysses (Voyager) |
Публикувано | 20.07.03 18:38 |
|
task manager za win e malko osobeno kopelentse - pogledni kolko free RAM imash kakwa chast ot swap drive ti e zaeta, dali ne e prekaleno goljam, po podrazbirane minimum size e 384 - 1,5xfizicheskia ram, ama ako si mu zadal poweche syshto e nedobre, proweri syshto taka dali si zadal upotreba na RAM optimizirana za Applications ili za backgroun protsesi, po podrazbirane e za applications, mislja che shte popromeni dosta rabotata, no ne s poweche ot 8-12%
i razbira se kakyw chipset polzwash, njakoi ot VIA ne se rapoznawat kato UDMA i sa dosta bawni :(
Винаги има изход ...
| |
|
|
|
|