mysql cache功能小记

转自: http://www.cnblogs.com/rethink/archive/2009/10/09/1579634.html

mysql cache功能分析:

1 mysql的cache功能的key的生成原理是:把select语句按照一定的hash规则生成唯一的key,select的结果生成value,即key=>value。所以对于cache而言,select语句是区分大小写的,也区分空格的。两个select语句必须完完全全一致,才能够获取到同一个cache

2 生成cache之后,只要该select中涉及到的table有任何的数据变动(insert,update,delete操作等),相关的所有cache都会被删除。因此只有数据很少变动的table,引入mysql 的cache才较有意义。关于这方面的测试,可以参考:《Query Cache,看上去很美》一文。

所以,mysqlcache功能只适用于下列场合:数据变动较少,select较多的table

那么。在复杂的系统中,如何使用mysql的cache功能呢,基本方法如下:

配置query_cache_type,同时改写程序。

Continue reading mysql cache功能小记

blocked because of many connection errors

今天对北美论坛进行压力测试了的,测试完,再看网站.发现网站不能访问了.报下面的错误.

Discuz! info: Can not connect to MySQL server

Time: 2011-3-22 7:54pm
Script: /Discuz6/upload/forumdisplay.php

Error: Host ‘xx.sina.com’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’
Errno.: 1129

Similar error report has beed dispatched to administrator before.

Continue reading blocked because of many connection errors

MySQL配置文件my.cnf中文版

#BEGIN CONFIG INFO
#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大
#TYPE: SYSTEM
#END CONFIG INFO

#
# 此mysql配置文件例子针对4G内存
# 主要使用INNODB
#处理复杂队列并且连接数量较少的mysql服务器
#
# 将此文件复制到/etc/my.cnf 作为全局设置,
# mysql-data-dir/my.cnf 作为服务器指定设置
# (@localstatedir@ for this installation) 或者放入
# ~/.my.cnf 作为用户设置.
#
# 在此配置文件中, 你可以使用所有程序支持的长选项.
# 如果想获悉程序支持的所有选项
# 请在程序后加上”–help”参数运行程序.
#
# 关于独立选项更多的细节信息可以在手册内找到
#

#
# 以下选项会被MySQL客户端应用读取.
# 注意只有MySQL附带的客户端应用程序保证可以读取这段内容.
# 如果你想你自己的MySQL应用程序获取这些值
# 需要在MySQL客户端库初始化的时候指定这些选项
Continue reading MySQL配置文件my.cnf中文版

mysql explain详解

对于经常使用mysql的兄弟们,对explain一定不会陌生。当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供有关表如何联合和以什么次序的信息。

借助于EXPLAIN,你可以知道
1)你什么时候必须为表加入索引以得到一个使用索引找到记录的更快的SELECT。
2)你也能知道优化器是否以一个最佳次序联结表。为了强制优化器对一个SELECT语句使用一个特定联结次序,增加一个STRAIGHT_JOIN子句。
官方的关于explain的文档在http://dev.mysql.com/doc/refman/5.1/en/using-explain.html(英文),本文可作为官方文献的不完整通俗读物。

使用的方法

EXPLAIN tbl_name
或:
EXPLAIN [EXTENDED] SELECT select_options

前者可以得出一个表的字段结构等等,后者主要是给出相关的一些索引信息,而今天要讲述的重点是后者。

举例

Continue reading mysql explain详解

Mysql Explain 详解

一.语法

explain < table_name >

例如: explain select * from t3 where id=3952602;

二.explain输出解释

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+
| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

1.id
我的理解是SQL执行的顺利的标识,SQL从大到小的执行.

例如:
mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
+—-+————-+————+——–+——————-+———+———+——+——+——-+
| id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
+—-+————-+————+——–+——————-+———+———+——+——+——-+
|  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  2 | DERIVED     | <derived3> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
|  3 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
+—-+————-+————+——–+——————-+———+———+——+——+——-+

很显然这条SQL是从里向外的执行,就是从id=3 向上执行.

Continue reading Mysql Explain 详解

show variables中各项的解释

这是原文,解释很详细,只是都是英文,费点劲,顺便可以锻炼一下英语水平啊。

http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html

下面是在网上摘抄的一些中文解释

Possible variables for option –set-variable (-O) are:
back_log              current value: 5
connect_timeout    current value: 5
delayed_insert_timeout   current value: 300
delayed_insert_limit   current value: 100
delayed_queue_size current value: 1000
flush_time          current value: 0
interactive_timeout current value: 28800
join_buffer_size    current value: 131072
key_buffer_size    current value: 1048540
lower_case_table_names   current value: 0
long_query_time    current value: 10
max_allowed_packet current value: 1048576
max_connections    current value: 100
max_connect_errors current value: 10
max_delayed_threads current value: 20
max_heap_table_size current value: 16777216
max_join_size       current value: 4294967295
max_sort_length    current value: 1024
max_tmp_tables        current value: 32
max_write_lock_count   current value: 4294967295
net_buffer_length     current value: 16384
query_buffer_size     current value: 0
record_buffer       current value: 131072
sort_buffer           current value: 2097116
table_cache           current value: 64
thread_concurrency current value: 10
tmp_table_size        current value: 1048576
thread_stack       current value: 131072
wait_timeout       current value: 28800

如果有一个mysqld服务器正在运行,通过执行这个命令,你可以看到它实际上使用的变量的值:
Continue reading show variables中各项的解释

返回顶部