联合MySQL Proxy 和MySQL Cluster,构建高性能数据库
联合MySQL Proxy 和MySQL Cluster,构建高性能数据库
原文:http://blogs.mysql.com/kaj/2007/12/10/combining-mysql-proxy-with-mysql-cluster/
不久前,我和Stewart Smith, Vinay Joosery, Monty Taylor 以及其他的mysql使用者(他们比我更熟悉MySQL Cluster )展开了一次讨论,探讨的主题是:在不更改应用的情况下,使用MySQL Proxy来消除MySQL Cluster 的全表扫描。
讨论源自我问Stewart的一个问题:扩展MySQL Cluster使用用户数量的瓶颈是什么?他回答:瓶颈可能来自Join和其他的select可能需要扫描数据库的大部分。这里有其他更快的存储引擎,比如 MyISAM and InnoDB。
从一个简单的图来看——如图1,应用和MySQL Cluster通过sql交互,同时得到一些服务的响应。这种观点可以图1 中带有双箭头的“sql”来表示。“sql”主要包括下面几部分:
UPDATE, INSERT, DELETE 语句,轻量级的,经常就影响几行——在图2中用蓝色的单向箭头表示
简单的SELECT语句,也是轻量级的,这种查询通常使用索引来返回几行——在图2中用黑色的双向箭头表示
复杂的SELECT语句,比如常见的使用" select *" ,但这种语句不是使用索引,而且经常会返回多行数据——这 种情况在图2中用带虚线的双向箭头(注意返回段的两个箭头代表返回多数据)表示
图2并没有在应用结构上和图1产生变化,只是更加的细粒度一点。现在我们来看普通的MySQL Server (带有MyISAM 或 InnoDB引擎)能够更快的发送复杂的查询请求。在图3中,我们能看到:
 
相关文档:
# MySQL-Front 5.1 (Build 4.2)
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
/*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
/*!40103 SET SQL_NOTES='ON' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS */ ......
1. 安装mysql的时候选择字符集utf8
2. 安装结束后修改my.ini,有两个地方要修改,
[mysql] default-character-set=gbk
# The default character set that will be used when a new schema or table is
# created and no character set ......
假如我们的mysql有一个计数器,而这个计数器需要我们重新统计,怎么办呢?
应用场景,比如说有一个商场,每卖一个产品都产生一个流水,然后我们需要知道每笔流水是该产品第几次出售的,这样说可能不明白,我拿一个详细的数据
举例吧。
recordID,productID,productType,sellDate,counter
1, 1, 1, '2010-1-15 15:20:10 ......
修改MySQL 5.1 data文件夹路径
我安装的这个版本的MYSQL没有data文件夹,但是可以正常使用,不知道你们的有没有呢?怎么才可以出现data文件夹呢,没有data文件夹,那我的数据库文件存放在什么地方了呢?我搜索了整个电脑都没有找到。
好心的朋友,快告诉我怎么回事?该怎么解决?
谢谢了!!!
====================== ......
引自 http://www.itpub.net/thread-1034410-1-1.html
Mysql Explain 详解
一.语法
explain < table_name >
例如: explain select * from t3 where id=3952602;
二.explain输出解释
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type ......