Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 440 Мб памяти для MySql - не много ли?
 
 автор: Хулиган   (05.10.2011 в 00:12)   письмо автору
 
 

Загрузилась ось (ХР), в диспетчере смотрю выделение памяти - 190 Мб.
Запускаю mysql - выделение памяти 630 Мб. Куда столько памяти? Как уменьшить?
MySql версии 5.1.32, пакет non-install.

Если запустить денвер, то выделение памяти 235Мб, при том, что в денвере не только MySql, но и апач, и виртуальный диск и ещё куча всего...

Есть какие-нибудь настройки? То, что нагуглил (отключить InnoDB, skip-networking) - это не подходит, нужны трансакции и работа по сети. Да и денвер же с трансакциями и сетью потребляет на порядок меньше.

  Ответить  
 
 автор: cheops   (05.10.2011 в 10:56)   письмо автору
 
   для: Хулиган   (05.10.2011 в 00:12)
 

Если не сложно, прикрепите ваш my.ini

  Ответить  
 
 автор: Хулиган   (05.10.2011 в 18:05)   письмо автору
5 Кб
 
   для: cheops   (05.10.2011 в 10:56)
 

Вот он.

  Ответить  
 
 автор: cheops   (05.10.2011 в 18:49)   письмо автору
 
   для: Хулиган   (05.10.2011 в 18:05)
 

Для начала уменьшите key_buffer до 128 Мб и перезагрузите сервер - меньше ли теперь потребляется памяти?
key_buffer = 128M

  Ответить  
 
 автор: Хулиган   (06.10.2011 в 01:57)   письмо автору
 
   для: cheops   (05.10.2011 в 18:49)
 

если key_buffer = 128M, потребление памяти снижается до 180Мб. Если key_buffer = 32Мб, то вообще до 70Мб.
Если я правильно понял, этот параметр не должен влиять на InnoDB?
Если влияет, то до какого значения его можно снизить, если к примеру самая большая таблица в БД имеет порядка 10 тыс. записей по 15 полей и индекс в ней varchar 15?

  Ответить  
 
 автор: cheops   (06.10.2011 в 11:07)   письмо автору
 
   для: Хулиган   (06.10.2011 в 01:57)
 

Этот параметр влиятет только на MyISAM, в InnoDB индексы храняться прямо в таблице и для ускорения работы ключей в InnoDB нужно увеличивать innodb_buffer_pool_size (впрочем key_buffer вообще занулять не советую, так как есть еще системная база данных mysql и ей нужны MyISAM-индексы).

>Если влияет, то до какого значения его можно снизить, если к примеру самая большая таблица
>в БД имеет порядка 10 тыс. записей по 15 полей и индекс в ней varchar 15?
Этот параметр влияет только на ускорение работы индексов, если он маленький - он быстро обновляется и индексами в оперативной памяти не успевает никто воспользоваться, если большой - часть памяти может не использоваться вообще. На боевом сервере данных при выставлении этого параметра нужно ориентироваться на соотношение key_reads / key_reads_requests и добиваться того, чтобы оно стремилось к 1 (это наиболее эффективное расходование памяти на индексы).

  Ответить  
 
 автор: Хулиган   (06.10.2011 в 13:19)   письмо автору
 
   для: cheops   (06.10.2011 в 11:07)
 

Значит, если установить 32Мб, то мне этого хватит с головой?

  Ответить  
 
 автор: cheops   (06.10.2011 в 13:32)   письмо автору
 
   для: Хулиган   (06.10.2011 в 13:19)
 

Да, вполне должно хватить.

  Ответить  
 
 автор: Хулиган   (06.10.2011 в 20:02)   письмо автору
 
   для: cheops   (06.10.2011 в 13:32)
 

Спасибо за разъяснения!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования