Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как оптимизировать базу 
:(
    Опции темы
dark_religion
Дата 9.6.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 8.9.2006

Репутация: нет
Всего: -3



Что я могу сделать, что бы ускорить работу?

1. например мне надо выбрать 20 тысяч товаров из базы 
структура:
товары 50 тысяч
характеристики товаров 1 миллион. у каждой характеристики есть айди товара
у каждой характеристики есть имя, но так как они часто повторяются то они хранятся в отдельной таблице и у каждой характеристики есть айди ее имени. 

есть корзина в которой храняться айди купленных товаров. теперь быстро надо выбрать всю информацию о товарах например для 20 тысяч.

при попытке дампа базы все зависает. Как можно это чудо оптимизировать?


PM MAIL   Вверх
Akina
Дата 9.6.2009, 21:11 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Вот нафига, хочется узнать, может потребоваться детальная информация о 20 тыс. товаров?
А так вроде всё нормально - 3 таблицы, организуется много-ко-много... если правильно построены индексы, должно летать. А если и тормозить - то только на стадии передачи данных на клиента.
Зависает? смотри explain... 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
dark_religion
Дата 10.6.2009, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 8.9.2006

Репутация: нет
Всего: -3



Если через phpMyAdmin делать дамп то зависает. Как эксплейн смотреть? 

Тип базы инно диби. Оно нормально работает если информацию об эдном продукте надо.  А если надо о всех то подвисает.

Для 20 тысяч может быть надо, для частичного автоматического экспорта. 

Цитата

если правильно построены индексы, должно летать


какие именно индексы?

инно диби фултекст не поддерживает то я в принципе по тексту и не ищу а только по айди.
PM MAIL   Вверх
Akina
Дата 10.6.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Дай структуры, посмотрим.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Бонифаций
Дата 10.6.2009, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



хорошая корзинка такая - на 20 тыщ товаров. А говорят - кризис

Добавлено через 2 минуты и 42 секунды
настройки innodb покажи также.

Скажем вывод

show variables like 'innodb%';





--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
dark_religion
Дата 10.6.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 8.9.2006

Репутация: нет
Всего: -3



Код

CREATE TABLE IF NOT EXISTS `details` (
  `detail_id` int(11) NOT NULL auto_increment,
  `detail_name` varchar(150) character set cp1251 NOT NULL,
  `specification_id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  PRIMARY KEY  (`detail_name`,`specification_id`,`product_id`),
  KEY `detail_id` (`detail_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `products`
--

CREATE TABLE IF NOT EXISTS `products` (
  `product_id` int(11) NOT NULL auto_increment,
  `product_name` varchar(150) character set cp1251 NOT NULL,
  `product_desc` text character set cp1251 NOT NULL,
  `product_simg` varchar(35) character set cp1251 NOT NULL,
  `category_id` int(11) default NULL,
  PRIMARY KEY  (`product_id`),
  UNIQUE KEY `product_link` (`product_link`),
  UNIQUE KEY `product_name` (`product_name`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `specifications`
--

CREATE TABLE IF NOT EXISTS `specifications` (
  `specification_id` int(11) NOT NULL auto_increment,
  `specification_name` varchar(150) character set cp1251 NOT NULL,
  `parent_id` int(11) NOT NULL default '0',
  PRIMARY KEY  (`specification_name`,`parent_id`),
  KEY `specification_id` (`specification_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

=============================
Цитата

innodb_additional_mem_pool_size    2097152
innodb_autoextend_increment    8
innodb_buffer_pool_awe_mem_mb    0
innodb_buffer_pool_size    49283072
innodb_checksums    ON
innodb_commit_concurrency    0
innodb_concurrency_tickets    500
innodb_data_file_path    ibdata1:10M:autoextend
innodb_data_home_dir     
innodb_doublewrite    ON
innodb_fast_shutdown    1
innodb_file_io_threads    4
innodb_file_per_table    OFF
innodb_flush_log_at_trx_commit    1
innodb_flush_method     
innodb_force_recovery    0
innodb_lock_wait_timeout    50
innodb_locks_unsafe_for_binlog    OFF
innodb_log_arch_dir     
innodb_log_archive    OFF
innodb_log_buffer_size    130023424
innodb_log_file_size    178257920
innodb_log_files_in_group    2
innodb_log_group_home_dir    .\
innodb_max_dirty_pages_pct    90
innodb_max_purge_lag    0
innodb_mirrored_log_groups    1
innodb_open_files    300
innodb_rollback_on_timeout    OFF
innodb_support_xa    ON
innodb_sync_spin_loops    20
innodb_table_locks    ON
innodb_thread_concurrency    8
innodb_thread_sleep_delay    10000


Это сообщение отредактировал(а) dark_religion - 10.6.2009, 15:53
PM MAIL   Вверх
dark_religion
Дата 12.6.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 8.9.2006

Репутация: нет
Всего: -3



так что?
PM MAIL   Вверх
Бонифаций
Дата 13.6.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



Цитата

innodb_buffer_pool_size    49283072


1) Это мало. Сколько памяти на сервере?  Выдели хотя бы половину RAM.

2) Покажи explain:

explain select чегоутебятамвзапросе

3) Как делаешь дамп?  (который "зависает")



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
dark_religion
Дата 17.6.2009, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 8.9.2006

Репутация: нет
Всего: -3



Привет извените что не писал случайно удалил хороший файл)) сильно большим он мне показался) думал логи какие-то а оказалось, что не логи) шас почти востановил базу) как сделаю все отпишусь)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.