Производительность денвера

Главные вкладки

Аватар пользователя serg-php serg-php 15 января 2008 в 8:49

Столкнулся с проблемой перевода данных в .xls в базу доски объявлений.
Данные успешно импортировал в базу мускула (денвер), ~ 1400 строк, обновил 3 таблицы. Запускаю на денвере получаю - Fatal error: Maximum execution time of 30 seconds exceeded in Y:\home\localhost\www\euroinvest_com_ua\send_alerts.php on line 148

На денвере в php.ini я 30 секунд заменил 300 - работает, но очень медленно, учитывая, что база весит 4 метра.

из таблиц, методом тыка, обнаружил, что данное сообщение я получаю после импорта данных в таблицу пользователей.
Загрузка ЦП - 100% (атлон 2,5)
Подробнее о таблице:
CREATE TABLE `sbbleads_members` (
`sb_id` bigint(20) NOT NULL auto_increment,
`sb_username` varchar(255) default NULL,
`sb_password` varchar(255) default NULL,
`sb_firstname` varchar(255) default NULL,
`sb_lastname` varchar(255) default NULL,
`sb_email` varchar(255) default NULL,
`sb_street` varchar(255) default NULL,
`sb_city` varchar(255) default NULL,
`sb_state` varchar(255) default NULL,
`sb_zip` varchar(255) default NULL,
`sb_country` bigint(20) default NULL,
`sb_phone` varchar(255) default NULL,
`sb_fax` varchar(255) default NULL,
`sb_mobile` varchar(255) default NULL,
`tempdate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`sb_ondate` timestamp NOT NULL default '0000-00-00 00:00:00',
`sb_expiry_date` timestamp NOT NULL default '0000-00-00 00:00:00',
`sb_memtype` bigint(20) default NULL,
`sb_lastlogin` timestamp NOT NULL default '0000-00-00 00:00:00',
`sb_suspended` varchar(255) default NULL,
`sb_company` varchar(255) default NULL,
PRIMARY KEY (`sb_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1471 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1471 ;

1) Это импорт данных с 1- 300 строки
INSERT INTO `sbbleads_members` VALUES (1, 'plazma', '123456', 'ООО “Компания', ' “Плазма”', 'info@plasma.com.ua', 'Харьков', 'Харьков', 'Харьковская', '61170', 206, '38-057-7548782', '38-057-7518723', '', '2008-01-07 00:39:20', '2007-12-01 23:21:04', '0000-00-00 00:00:00', 3, '2008-01-07 00:39:20', 'no', NULL);

2) Это импорт дополнительных 1100 строк (привожу последние 2 строки)

INSERT INTO `sbbleads_members` VALUES (1469, 'infosandingmasterru', '123456', 'Sandingmaster-ru', 'Россия', 'info@sandingmaster.ru', 'Россия', 'Россия', 'Россия', '00000', 2, '', '--', '', '2007-12-03 15:27:29', '2007-12-03 15:26:59', '0000-00-00 00:00:00', 3, '2007-12-03 15:27:29', 'no', NULL);
INSERT INTO `sbbleads_members` VALUES (1470, 'lenta005mailru', '123456', 'Павел', 'Россия', 'lenta.005@mail.ru', 'Россия', 'Россия', 'Россия', '00000', 2, '', '--', '', '2007-12-03 15:27:29', '2007-12-03 15:26:59', '0000-00-00 00:00:00', 3, '2007-12-03 15:27:29', 'no', NULL);

Сообщение получаю - импорт произведен успешно!
То же самое сделал с базой на хосинге, в отличие от Денвера - все работает!

Отсюда:
1. Где ошибка?
2. Если денвер парится, значит, не все правильно!
3. Если на хостинге при таких импортах все работает, то если я буду продолжать импортироватьтаким образом, возможно у меня возникнут проблемы с базой и на хостинге.

Проблему пока не нашел!

Комментарии

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 15 января 2008 в 12:39

Denwer не создавался и не предназначен для "промышленного" использования и не заточен для высокой производительности (выбор - в пользу компактности и легкости настроек). Это именно - "Джентельменский Набор Разработчика".

Аватар пользователя serg-php serg-php 16 января 2008 в 18:09

vadbars, спасибо тебе за dumper.php!

Только как мне делать .sql.gz для скрипта (под виндой) , если я собираюсь импортить только таблицу?

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 16 января 2008 в 19:46

Ну, за dumper надо благодарить ребят с sypex.net, например сюда - http://sypex.net/products/dumper/sponsors. (Кстати, это ваши земляки из Киева. Позвоните +380 44 592-63-33, спросите, чего так долго нет обещанной версии 1.0 ? Smile

Файл .gz под виндой может делать архиватор gzip (см. прикрепленный файл, переименуйте в gzip.exe)

Аватар пользователя serg-php serg-php 17 января 2008 в 22:17

За архиватор спасибо! Потестю!

Я понял, что я не совсем правильно загоняю данные в мускул. Инфу, которая в файле экселя, табличной формы, я подогнал под поля
табли

vadbars, возможо, расстояние между данными и кавычками, во втором варианте большое.
Это потому, что я сначала делал структуру таблицы в экселе, а когда данные вбил, то копировал все это в блокнот и потом из блокнота в мускул.
Нет ли вообще скрипта пхпшного который позволит экспортить из екселя в мускул значения в нужные мне поля?

Аватар пользователя orbisnull orbisnull 19 января 2008 в 9:16

Вобще на винде при 1Gb оперативы, AMD64 3000+, sata с дефолтовыми настройками производительность ниже чем на freebsd VDS 500, 128 (swap 256)...

Аватар пользователя serg-php serg-php 19 января 2008 в 19:43

vadbars,
dumper.php не помог (на хостинге с мускулом cp1251 -
все коректно делает, а вот на CHARSET=latin1 , в таблицах latin1_swedish_ci)
все тоже самое для денвера - абракадабра!

Аватар пользователя serg-php serg-php 3 февраля 2008 в 0:02

Таблица `sbbleads_signups` -> latin1 (соединение cp1251)
Таблица `sbbleads_signups`.
Кодировка соединения и таблицы не совпадает:
Таблица `sbbleads_stats` -> latin1 (соединение cp1251)
Таблица `sbbleads_stats`.
Кодировка соединения и таблицы не совпадает:
Таблица `sbbleads_styles` -> latin1 (соединение cp1251)
Таблица `sbbleads_styles`.
Кодировка соединения и таблицы не совпадает:
Таблица `sbbleads_timeformats` -> latin1 (соединение cp1251)

Это мне дампер писал когда я уже базу на денвере воостанавливал!

В скрипте я сделал следуюющее:

/ Кодировка соединения с MySQL
// auto - автоматический выбор (устанавливается кодировка таблицы), cp1251 - windows-1251, и т.п.
#define('CHARSET', 'auto');
define('CHARSET', 'utf8');
// Кодировка соединения с MySQL при восстановлении
// На случай переноса со старых версий MySQL (до 4.1), у которых не указана кодировка таблиц в дампе
// При добавлении 'forced->', к примеру 'forced->cp1251', кодировка таблиц при восстановлении будет принудительно заменена на cp1251
// Можно также указывать сравнение нужное к примеру 'cp1251_ukrainian_ci' или 'forced->cp1251_ukrainian_ci'
define('RESTORE_CHARSET', 'cp1251');