Архив

Статии по ключова дума: ‘таблици’

MySQL проблем с много отворени таблици- Errcode: 24

1 ноември, 2009 Няма коментари

Тук проблемът не е в MySQL да поясня отначало, а в това, че базата има много таблици и респективно отваря много файлове,а броя на файловете по подразбиране в MySQL които могат да се отварят не са особено много :) .
"Проблемът" е следния: Когато се експортва база с повече таблици от колкото разрешени отворени файлове в my.cnf може да се получи следната грешка:

#mysqldump -uroot -p wordpress_multi > wordpress_multi.sql
mysqldump: Got error: 29: File './wordpress_multi/wp_61_terms.MYD' not found (Errcode: 24) when using LOCK TABLES

Понеже "error code: 24" нищо не ми говори затова използвам perror (За повече информация относно perror, натиснете ТУК) за да разбера какво означава това:

# perror 24
OS error code  24:  Too many open files

Става ясно, че трябва да увеличим максималния брой отворени файлове в mysql. Добавяте следния ред в конф файла на MySQL (/etc/my.cnf), секция [mysqld]:

open-files=2048

Рестартирате mysqld ( /etc/init.d/mysqld restart)

След като може да се отварят повече файлове от MySQL, проблем вече няма в това отношение.

Немърливост в база данни с InnoDB таблици

21 октомври, 2009 Няма коментари

Няма да конкретизирам проект или сървър, но ще кажа, че таблицата tablicaX беше локната. За целта реших да проверя каква е MyISAM или InnoDB:

mysql> show create table tablicaX;
ERROR 1033 (HY000): Incorrect information in file: './bazaX/tablicaX.frm'

Не става ясно каква е таблицата. Добре. Реших да предположа, че е масовия енжин MyISAM и направих следното:

myisamchk -r '/var/lib/mysql/bazaX/tablicaXs.frm';
myisamchk: error: '/var/lib/mysql/bazaX/tablicaX.frm' is not a MyISAM-table

На практика нещо определено не е в час,  но какво ?!

Отговорът отново е прост: В my.cnf открих skip-innodb .

Просто си активирате InnoDB енжина и всичко е наред. Кофти е, че MySQL не алармира за спирането на InnoDB engine, но той все пак не е пророк :)

Конструкции на SQL за поддръжка на таблици в MySQL

14 октомври, 2009 Няма коментари

MySQL притежава няколко конструкции на SQL за поддръжка на таблици: CHECK TABLE за проверка на целостта им, REPAIR TABLE за извършване на поправка, ANALYZE TABLE за анализ и OPTIMIZE TABLE за оптимизиране.  Следва малко информация за всяка от конструкциите за поддръжка на таблици в MySQL:

CHECK TABLE

Конструкцията CHECK TABLE извършва проверка за целостта на структурата и съдържанието на съответната таблица. Тя е приложима и за MyISAM, и за InnoDB. За таблиците от тип MyISAM се осъществява също и актуализиране на статистиката на индексите. Ако дадената таблица с изглед, с CHECK TABLE се проверява дефиницията му. Ако данните, изведени от CHECK TABLE показват наличие на проблем с таблицата, тя трябва да бъде поправена.

REPAIR TABLE

Конструкцията REPAIR TABLE служи за коригиране на проблеми в таблица, която е повредена. Тя е приложима само за таблици от тип MyISAM. Можете да конфигурирате автоматична поправка на таблиците на MyISAM.

Пример: repair table dhstudio

ANALYZE TABLE

Конструкцията ANALYZE TABLE служи за актуализиране на таблица с информация за разпределението на ключовите стойности в нея. Тя се използва от оптимизатора за избор на по- подходящи планове за изпълнението на заявки. Тази конструкция работи с таблици на MyISAM и InnoDB.

Пример: analyze table dhstudio

OPTIMIZE TABLE

Конструкцията OPTIMIZE TABLE служи за "изчистване" на таблици от тип MyISAM чрез дефрагментирането им. Резултатът е повторното разпределяне на неизползваното пространство, получено в резултат от изтриване и актуализации, както и обединяване на записите, които са били разделени и съхранени разпокъсано. OPTIMIZE TABLE се използва също така за сортиране на индексните страници, ако не са подредени, както и за актуализиране на статистиката за индексите.
OPTIMIZE TABLE работи и с таблици на InnoDB, но ги пренасочва към конструкцията ALTER TABLE, която ги изгражда наново. По този начин се актуализира статистиката за индексите и се освобождава място в клъстерния индекс.

Пример:  optimize table dhstudio

Ако искате да разберете кои таблици трябва да оптимизирате изпълнете следното:

show table status where Data_free!=0;

По този начин ще фрагментирате таблиците които се нуждаят от това, а не тези които са фрагментирани.

Подобрения в kakvo.org

20 май, 2009 Няма коментари

Днес направих малко подобрения в kakvo.org :

1. Ъпдейтнах fckeditor ot 2.6.3 на 2.6.4 . В лентата на fckeditor добавих възможност за добавяне на flash и създаване на таблици.

2. За втори път регистрирах kakvo.org в bgtop.net, понеже преди доста време първия ми акаунт изчезна безследно.

Ако някой иска да подкрепи kakvo.org може да отвори сайта ( www.kakvo.org ) и да гласува (горе в дясно).