PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN (21)
);
PARTITION BY LIST(store_id)
PARTITION pNorth VALUES IN (3,5,6,9,17),
PARTITION pEast VALUES IN (1,2,10,11,19,20),
PARTITION pWest VALUES IN (4,12,13,14,18),
PARTITION pCentral VALUES IN (7,8,15,16)
);
PARTITION BY HASH(YEAR(hired))
PARTITIONS 4;
PARTITION BY LINEAR KEY (col1)
PARTITIONS 3;
read_handshake() — 这个函数在server返回初始握手信息时被调用,可以调用这个函数在验证信息发给服务器前进行额外的检查。
read_auth() — client发送验证信息给服务器的时候会调用这个函数。
read_auth_result() — 服务器验证信息返回后调用这个函数。
read_query() — 每次client发送查询请求函数的时候被调用,可以用这个函数进行查询语句的预处理,过滤掉非预期的查询等等,这个是最常用的函数。
read_query_result() — 查询结果返回是调用的函数,可以进行结果集处理。
属性描述:
servers: 后台服务器的列表( proxy.backends)
queries:某一客户要发送到服务器端的查询
PROXY_VERSION :mysql-proxy版本,十六进制。
proxy.connection 是只读对象,提供了当前活动连接的信息
thread_id :连接的threadid
backend_ndx :当前连接所对应的后端服务器编号
proxy.backends部分可写的,包含了后台服务器以及服务器meta信息的列表 ,你可以指定当前连接使用那个后台服务器。
proxy.backends 属性:
address: 当前连接的主机名/端口组合
connected_clients:目前已连接的客户数
state:后台服务器的状态
proxy.queries是一个要送往服务器的查询队列, The queue is not populated automatically, but if you do not explicitly populate the queue then queries are passed on to the backend server verbatim. Also, if you do not populate the query queue by hand, then the read_query_result() function is not triggered.
函数描述:
append(id,packet) 添加到队尾。
prepend(id,packet) 插入队头。
len() 返回查询的队列长度
以下常量mysql-proxy用来客户指定操作:
PROXY_SEND_QUERY 发送查询给服务器.
PROXY_SEND_RESULT 返回客户端查询结果
PROXY_IGNORE_RESULT 丢弃结果集
MYSQLD_PACKET_OK The packet is OK.
MYSQLD_PACKET_ERR The packet contains error information.
MYSQLD_PACKET_RAW The packet contains raw data.
BACKEND_STATE_UNKNOWN The current status is unknown.
BACKEND_STATE_UP The backend is known to be up (available).
BACKEND_STATE_DOWN The backend is known to be down (unavailable).
BACKEND_TYPE_UNKNOWN Backend type is unknown.
BACKEND_TYPE_RW Backend is available for read/write.
BACKEND_TYPE_RO Backend is available only for read-only use.
COM_SLEEP Sleep
COM_QUIT Quit
COM_INIT_DB Initialize database
COM_QUERY Query
COM_FIELD_LIST Field List
COM_CREATE_DB Create database
COM_DROP_DB Drop database
COM_REFRESH Refresh
COM_SHUTDOWN Shutdown
COM_STATISTICS Statistics
COM_PROCESS_INFO Process List
COM_CONNECT Connect
COM_PROCESS_KILL Kill
COM_DEBUG Debug
COM_PING Ping
COM_TIME Time
COM_DELAYED_INSERT Delayed insert
COM_CHANGE_USER Change user
COM_BINLOG_DUMP Binlog dump
COM_TABLE_DUMP Table dump
COM_CONNECT_OUT Connect out
COM_REGISTER_SLAVE Register slave
COM_STMT_PREPARE Prepare server-side statement
COM_STMT_EXECUTE Execute server-side statement
COM_STMT_SEND_LONG_DATA Long data
COM_STMT_CLOSE Close server-side statement
COM_STMT_RESET Reset statement
COM_SET_OPTION Set option
COM_STMT_FETCH Fetch statement
COM_DAEMON Daemon (MySQL 5.1 only)
COM_ERROR Error
MYSQL_TYPE_DECIMAL Decimal
MYSQL_TYPE_NEWDECIMAL Decimal (MySQL 5.0 or later)
MYSQL_TYPE_TINY Tiny
MYSQL_TYPE_SHORT Short
MYSQL_TYPE_LONG Long
MYSQL_TYPE_FLOAT Float
MYSQL_TYPE_DOUBLE Double
MYSQL_TYPE_NULL Null
MYSQL_TYPE_TIMESTAMP Timestamp
MYSQL_TYPE_LONGLONG Long long
MYSQL_TYPE_INT24 Integer
MYSQL_TYPE_DATE Date
MYSQL_TYPE_TIME Time
MYSQL_TYPE_DATETIME Datetime
MYSQL_TYPE_YEAR Year
MYSQL_TYPE_NEWDATE Date (MySQL 5.0 or later)
MYSQL_TYPE_ENUM Enumeration
MYSQL_TYPE_SET Set
MYSQL_TYPE_TINY_BLOB Tiny Blob
MYSQL_TYPE_MEDIUM_BLOB Medium Blob
MYSQL_TYPE_LONG_BLOB Long Blob
MYSQL_TYPE_BLOB Blob
MYSQL_TYPE_VAR_STRING Varstring
MYSQL_TYPE_STRING String
MYSQL_TYPE_TINY Tiny (compatible with MYSQL_TYPE_CHAR)
MYSQL_TYPE_ENUM Enumeration (compatible with MYSQL_TYPE_INTERVAL)
MYSQL_TYPE_GEOMETRY Geometry
MYSQL_TYPE_BIT Bit
gino 2008-07-30