mysql proxy is the mysql middleware service officially provided by mysql. The upstream can connect to several [mysql-client], the backend can connect to several [mysql-server], and [mysql-proxy] is the most basic Usage is as a middle layer for request interception and request transfer.
mysql proxy means:
# Background
The topic shared by my colleagues today is mysql-proxy, so I came down to understand it myself. I don’t want to be proficient, I just want to know this stuff
# Introduction
mysql-proxy is mysql The officially provided mysql middleware service can connect to several mysql-clients in the upstream and several mysql-servers in the backend.
It uses the mysql protocol. Any upstream that uses mysql-client can be migrated to mysql-proxy without modifying any code.
The most basic usage of mysql-proxy is as a request interception and an intermediate layer for request transfer:
、
Further , mysql-proxy can analyze and modify requests. Intercepting queries and modifying results needs to be done by writing Lua scripts.
mysql-proxy allows users to specify Lua scripts to intercept requests, analyze and modify requests. It also allows users to specify Lua scripts to modify the return results of the server
and add some results. You can set or remove some result sets.
So, basically, mysql-proxy is an officially provided framework with good scalability and can be used to complete:
sql interception and modification
Performance analysis and monitoring
Read and write separation
Request routing
# Purpose
1. The purpose of the shared colleague using proxy is because the test environment encounters the test/ A developer student accidentally performed a full table update/delete operation, which resulted in abnormal test data and thus affected the progress of the project. So he connected to mysql-proxy to intercept and check the sql statement, and sent the sql statement to a sql review service provided by the DBA. to determine whether there is a problem with the sql statement
2. There was such an experience before. The order table was divided into 128 libraries after the order was dismantled. The order was dismantled according to the order number. However, not all The tables all have order numbers (the pot of historical architecture). If there is a need to query the order number based on the mobile phone number, which leads to traversing the query 128 to determine whether it exists, then proxy is required to intervene. At that time, Alibaba's mycat middleware was used File
# Inadequacy
Since adding a layer of proxy will increase the consumption of network requests, performance will be affected to a certain extent;
More related free learning recommendations: mysql tutorial(Video)
The above is the detailed content of What does mysql proxy mean?. For more information, please follow other related articles on the PHP Chinese website!