December 23, 2007 at 14:20
非常神奇的 tuning script. 自动找出 mysql 服务器的问题, 并提出优化方案.
Racker Hacker – MySQLTuner
sql 语句的优化很是重要.
对于文字搜索当然要用全文搜索的工具, 所以Word/Contains Searching部分你可以忽略.
The Spanner – PHP Mysql tips
许多没有注意到的tips.
从技术层面上又发现了国内多数程序的问题,
偶不想告诉你在什么地方, 仔细看的话你应该也能从文中找出来.
MySQL AB :: MySQL 5.0 Reference Manual :: 6.2.20 Other Optimization Tips
EXPLAIN, profiling 都是调优的手段(参见 day 11)
MySQL AB :: MySQL 5.0 Reference Manual :: 6.2.1 Optimizing Queries with EXPLAIN
这篇是比较高级的调优.
Read Buffers, mmap, malloc and MySQL Performance | MySQL Performance Blog
读缓存只需要调大 read_buffer_size,
linux下, malloc 问题应该使用 TCMalloc : Thread-Caching Malloc
而 freebsd-7.0 的全新调度器会给人留下深刻的印象,
freebsd 跑 mysql 不快的历史结束了.

(一直以来)非常奇怪的是为什么使用了 CFS 调度器之后就能部分解决这类问题?
困惑得到了一定的解决, 不过仍然不彻底
Tags: 30days, mysql
Permalink
December 22, 2007 at 20:55
今天继续 mysql.
国内 mysql (myisam)最经典的应用, 就应该是论坛了.
许多(几乎100% ?)国内开源程序把 GPL 程序部分包含在自己的程序内,
还乱改版权, 本身就不是件什么光彩事.
论坛程序的sql语句质量低下, 更谈不上数据库方面的优化.
innodb方面偶就不想谈了.
key_buffer_size 简单说就是比myi文件的大小总和略大
table_cache: 用表数 * 连接数. 注意这里取的都是最大并发值. 事实上并不需要很大.
thread_cache: 连接数略大.
query_cache_size: dvbbs php开了应用mysql query cache的先河,
不过由于mysql固有缺陷,开了还不如不开.
这方面的cache应该由memcached承担.
What to tune in MySQL Server after installation
一篇很详细的文章. 从数方面进行了讨论.
这里说说RAID. 记住越大的集群越没有 RAID. 对于简单扩充的话推荐 RAID 10.
或者如果有钱买 SSD 是个不错的选择?
MySQL AB :: High Performance MySQL Chapter 6: Server Performance Tuning
tips 不只10条… EXPLAIN & slow_queries
(Slow Queries::Microslow patch 你可以去找来试一试.)
除此之外你也应该用一下 slow query log parser
Top10SQLPerformanceTips – MySQLForge Wiki
比 EXPLAIN 更为深入的就是 profiling 了.
Using the New MySQL Query Profiler
上面偶忽略掉了 innodb. 这里再提一次.
关于 innodb_buffer_pool_size 的问题, 取决于数据库外的 “其余应用”.
内存的 80% 是推荐值,在这基础上上下浮动还是没有问题的.
现在内存好像是不贵了…
Innodb Performance Optimization Basics
Tags: 30days, mysql
Permalink
December 20, 2007 at 22:07
很cool的管理工具. 上面的wiki的内容看后会有不少启发.
作者的 blog 也值得一看.
mysql-master-master – Google Code
FUSE是万能的,不过你可能不知道fuse 和 mysql 可以这样玩.
如果你考虑到mysql可以做简单的分布式,你想到了什么? 对. 分布式的处理.
不过显而易见的,这个文件系统的性能,读取小文件能力会比较强.
SourceForge.net: FUSE filesystem using MySQL as a storage
Mysql Proxy 可以被简单的用作 load balancing,
MySQL AB :: Getting started with MySQL Proxy 你或许看过了.
不过新鲜出炉的 Combining MySQL Proxy with MySQL Cluster 相信你没看过.
分离simple sql & complex sql, 并且在集群上做 replication.
这样你觉得怎么样呢?
监视 mysql 情况, 和 mytop 可以连用.
具体的监视图或许就不用放上来了 
SourceForge.net: mySQL Details Stats Graphed
mytop – a top clone for MySQL
# Utility to compare table definitions in two MySQL databases,
# and output a patch in the format of ALTER TABLE statements
# which converts the first database structure into in the second.
以后数据库结构更新就不着急了.
mysqldiff — a utility for comparing MySQL database structures
没有终端,就用 php 备份吧. 看起来不错的一个导出系统, 显然是适合大批量导出的.
MySQLDumper – smart backup for all your web projects
Tags: 30days, mysql
Permalink
March 2, 2007 at 23:31
对dvbbs.php 全文搜索的完全分析
这次给大家渗透些比较高级些的.关于搜索的东西.
首先,大家先去下载一份dvbbs.php beta1的代码.解压放在手头上
已经有的同学们就可以继续往下看了.
首先抛开php代码.
找出你的mysql手册.(没有?那直接看下面的吧.)
mysql全文搜索,sql的写法:
MATCH (col1,col2,…) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION])
比如:
SELECT * FROM articles WHERE MATCH (title,body) AGAINST (‘database’);
MATCH()函数对于一个字符串执行资料库内的自然语言搜索。一个资料库就是1套1个或2个包含在FULLTEXT内的列。搜索字符串作为对AGAINST()的参数而被给定。对于表中的每一行, MATCH() 返回一个相关值,即, 搜索字符串和 MATCH()表中指定列中该行文字之间的一个相似性度量。
Read the rest of this entry »
Tags: mysql, php
Permalink