詳解Mysql Proxy Lua內(nèi)部結(jié)構(gòu)體以及變量
Mysql Proxy Lua內(nèi)部結(jié)構(gòu)體以及變量是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)Mysql Proxy的結(jié)構(gòu)體和變量的應(yīng)用,具體內(nèi)容來看本文詳解。
Mysql Proxy的LUA配置腳本中可以使用很多內(nèi)部結(jié)構(gòu),其中最主要的是proxy,proxy提供了很多其他的結(jié)構(gòu)體的接口,比如連接列表,后端服務(wù)器列表等等。像incoming packet這樣的來自客戶的結(jié)構(gòu)體只是在腳本函數(shù)上下文中存在。
屬性描述:
- connection:包含所有活動客戶的連接(proxy.connection )列表. .
- servers: 后臺服務(wù)器的列表( proxy.backends)
- queries:某一客戶要發(fā)送到服務(wù)器端的查詢
- PROXY_VERSION :Mysql Proxy版本,十六進(jìn)制。
proxy.connection
proxy.connection 是只讀對象,提供了當(dāng)前活動連接的信息
proxy.connection 屬性:
thread_id :連接的threadid
backend_ndx :當(dāng)前連接所對應(yīng)的后端服務(wù)器編號
proxy.backends
proxy.backends部分可寫的,包含了后臺服務(wù)器以及服務(wù)器meta信息的列表 ,你可以指定當(dāng)前連接使用那個后臺服務(wù)器。
proxy.backends 屬性:
address: 當(dāng)前連接的主機(jī)名/端口組合
connected_clients:目前已連接的客戶數(shù)
state:后臺服務(wù)器的狀態(tài)
proxy.queries
proxy.queries是一個要送往服務(wù)器的查詢隊列,
- 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.
- The following methods are supported for populating the proxy.queries object.
函數(shù)描述:
- append(id,packet) 添加到隊尾。
- prepend(id,packet) 插入隊頭。
- len() 返回查詢的隊列長度
以下常量Mysql Proxy用來客戶指定操作:
- PROXY_SEND_QUERY 發(fā)送查詢給服務(wù)器.
- PROXY_SEND_RESULT 返回客戶端查詢結(jié)果
- PROXY_IGNORE_RESULT 丟棄結(jié)果集
包狀態(tài)常量:
- MYSQLD_PACKET_OK The packet is OK.
- MYSQLD_PACKET_ERR The packet contains error information.
- MYSQLD_PACKET_RAW The packet contains raw data.
后臺狀態(tài)常量:
- 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.
- 服務(wù)器命令常量:
- Constant Description
- 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數(shù)據(jù)類型
- Constant Field Type
- 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
小結(jié):詳解Mysql Proxy Lua內(nèi)部結(jié)構(gòu)體以及變量的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!