Mysql 5.1 на Mac: кеш запросов не работает - PullRequest
1 голос
/ 03 марта 2010

Мне было интересно, может ли кто-нибудь указать мне правильное направление. Я установил локальную песочницу Mysql 5.1 на своей машине Snow Leopard OSX, у меня установлен Macports Mysql 5.1 и, по всей видимости, он работает. Он принимает запросы, база данных работает и т. Д. Единственное, что странно, кэш запросов не работает. Я уже работал в linux и работал в 5.0 xammp, но я не уверен, почему он не работает в этой установке.

Некоторые подробности ...

% cat /etc/my.cnf | grep -i query_cache
query_cache_limit = 1M
query_cache_size = 32M
query_cache_type = 1

mysql> show variables like '%query_cache%';
+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| have_query_cache             | YES      |
| query_cache_limit            | 1048576  |
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 33554432 |
| query_cache_type             | ON       |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+
6 rows in set (0.00 sec)

mysql> show status like '%Qcache%';
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 1        |
| Qcache_free_memory      | 33536856 |
| Qcache_hits             | 0        |
| Qcache_inserts          | 0        |
| Qcache_lowmem_prunes    | 0        |
| Qcache_not_cached       | 433      |
| Qcache_queries_in_cache | 0        |
| Qcache_total_blocks     | 1        |
+-------------------------+----------+
8 rows in set (0.01 sec)

Мне кажется, что все настроено правильно, это в основном те же настройки, которые я использовал в 5.0 и 4.1. Большинство запросов с возможностью кэширования, и я не исключаю кеша специально. Я не знаю, это проблема Mac, проблема MacPorts, проблема 5.1 или моя личная проблема. Кто-нибудь может увидеть что-то не так с моей настройкой?


Хорошо, некоторая дополнительная информация. Похоже, это связано с Innodb. Запросы MyISAM кешируются очень хорошо.

Моя настройка inno:

$ cat /etc/my.cnf | grep nno

# Uncomment the following if you are using InnoDB tables
innodb_file_per_table
innodb_data_home_dir = /opt/local/var/db/mysql5
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /opt/local/var/db/mysql5
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 12M
innodb_log_file_size = 50M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 300
innodb_flush_method=O_DIRECT

1 Ответ

1 голос
/ 13 июля 2011

Имя вашей базы данных содержит точку или другие не алфавитно-цифровые символы?

Используете ли вы innodb_file_per_table?

Если это так, вам нужно переименовать вашу базу данных с помощью сброса и восстановления с новым именем.

...