易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql 提升命中率

Query Cache 在提高数据库性能方面具有非常重要的作用。
其设定也非常简单,仅需要在配置文件写入两行: query_cache_type 和 query_cache _size,而且 MySQL 的 query cache 非常快!而且一旦命中,就直接发送给客户端,节约大量的 CPU 时间。
当然,非 SELECT 语句对缓冲是有影响的,它们可能使缓冲中的数据过期。一个 UPDATE 语句引起的部分表修改,将导致对该表所有的缓冲数据失效,这是 MySQL 为了平衡性能而没有采取的措施。因为,如果每次 UPDATE 需要检查修改的数据,然后撤出部分缓冲将导致代码的复杂度增加。
query_cache_type 0 代表不使用缓冲, 1 代表使用缓冲,2 代表根据需要使用。
设置 1 代表缓冲永远有效,如果不需要缓冲,就需要使用如下语句:
SELECT SQL_NO_CACHE * from my_table WHERE ...
如果设置为 2 ,需要开启缓冲,可以用如下语句:
SELECT SQL_CACHE * from my_table WHERE ...
用 SHOW STATUS 可以查看缓冲的情况:
mysql> show status like 'Qca%';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_queries_in_cache | 8 |
| Qcache_inserts | 545875 |
| Qcache_hits | 83951 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 2343256 |
| Qcache_free_memory | 33508248 |
| Qcache_free_blocks | 1 |
| Qcache_total_blocks | 18 |
+-------------------------+----------+
8 rows in set (0.00 sec)
如果需要计算命中率,需要知道服务器执行了多少 SELECT 语句:
mysql> show status like 'Com_sel%';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Com_select | 2889628 |
+---------------+---------+
1 row in set (0.01 sec)
在本例中, MySQL 命中了 2,889,628 条查询中的 83,951 条,而且 INSERT 语句只有 545,875 条。因此,它们两者的和和280万的总查询相比有很大差距,因此,我们知道本例使用的缓冲类型是 2 。
而在类型是 1 的例子中, Qcache_hits 的数值会远远大于 Com_select 。


相关文档:

Mysql的日志类型与设置。


1.普通log
记录所有sql操作,包括select,show语句。
设置
默认是不打开此log。
打开时可以指定目录,不指定时保存在数据库录目录下。
[mysqld]
log = /data/logs/mysql.log   #此方式为指定文件
log = 1                           ......

安装mysql服务器,及修改1130错误

安装服务器端:下载一个mysql的安装程序,我安装的是5.0版本的,按照提示一步步操作完成。没有什么特别说明的。
安装客户端:下载一个mysql-query-browser,我用的是1.1版本的,安装,按照提示操作。
都安装完成以后,在本机用browser测试一下是否能连的上本机的服务,连接成功,都安装OK.
如果你想让其他的开发人员一起 ......

mysql 共享锁 排他锁 防插入锁

试验1
事务1:
#!/usr/bin/python
import time
import MySQLdb;
conn = MySQLdb.connect(host="localhost",port=3306,user="root",passwd="asdf",db="test",unix_socket="/data/mysql_3306/mysql.sock")
cursor = conn.cursor()
cursor.execute("select * from test")
while str!="1":
    str = r ......

Ubuntu下MySQL服务管理

测试环境:Ubuntu 9.10 + MySQL 5.1.37-1ubuntu5
Ubuntu 在启动管理 init.d
里面关于 MySQL 的命令有:
/etc/init.d/mysql start|stop|restart|reload|force-reload|status
例如重启MySQL服务:sudo /etc/init.d/mysql restart
......

使用Hibernate+MySql+native SQL的BUG,以及解决办法

本来是mssql+hibernate+native SQL 应用的很和谐
但是到了把mssql换成mysql,就出了错(同样的数据结构和数据)。
查询方法是:
String sql =
"select id XXX_ID from t_tab";
List<Map> list = session.createSQLQuery(sql)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
.list();
错 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号