Skip to content
Please note that GitHub no longer supports Internet Explorer.

We recommend upgrading to the latest Microsoft Edge, Google Chrome, or Firefox.

Learn more
A high-performance MySQL proxy
Branch: master
Clone or download
Latest commit 53ab18c Jan 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend fix#479 Nov 1, 2018
cmd/kingshard
config 增加prometheus监控 Jun 11, 2018
core #382,subtable index is sequential Oct 30, 2018
doc modify doc Dec 1, 2018
etc Merge pull request #449 from zs1379/prometheus Sep 4, 2018
monitor 修复map可能存在的race Sep 26, 2018
mysql bugfix #310 Feb 12, 2017
proxy #382, check date range when parsing conf Oct 31, 2018
sqlparser support #317 Mar 5, 2017
sqltypes modify doc Jan 25, 2016
vendor 增加prometheus监控 Jun 11, 2018
web 修复连接池泄露以及增加监控点 Sep 6, 2018
.gitignore git ignore vs code directory Jul 21, 2016
.travis.yml Bump Go versions and use '.x' to always get latest patch versions Oct 28, 2018
Makefile
README.md fixed load balancing Jan 3, 2019
README_ZH.md
dev.sh change travis.yml Jul 16, 2015

README.md

kingshard 中文主页

Build Status

Overview

kingshard is a high-performance proxy for MySQL powered by Go. Just like other mysql proxies, you can use it to split the read/write sqls. Now it supports basic SQL statements (select, insert, update, replace, delete). The most important feature is the sharding function. Kingshard aims to simplify the sharding solution of MySQL. The Performance of kingshard is about 80% compared to connecting to MySQL directly.

Feature

1. Basic Function

  • Splits reads and writes
  • Client's ip ACL control.
  • Transaction in single node.
  • Support limiting the max count of connections to MySQL database.
  • Support setting the backend database online or offline dynamically.
  • Supports prepared statement: COM_STMT_PREPARE, COM_STMT_EXECUTE, etc.
  • Support multi slaves, and load balancing between slaves.
  • Support reading master database forcely.
  • Support last_insert_id().
  • Support MySQL backends HA.
  • Support set the charset of proxy.
  • Support SQL blacklist.
  • Support dynamically changing the config value of kingshard.

2. Sharding Function

  • Support hash,range and date sharding across multiple nodes.
  • Support sending sql to the specified node.
  • Support most commonly used functions, such as max, min, count, sum, and also support join, limit, order by,group by.

Install

  1. Install Go
  2. git clone https://github.com/flike/kingshard.git src/github.com/flike/kingshard
  3. cd src/github.com/flike/kingshard
  4. source ./dev.sh
  5. make
  6. set the config file (etc/ks.yaml)
  7. run kingshard (./bin/kingshard -config=etc/ks.yaml)

Details of kingshard

1.How to use kingshard building a MySQL cluster

License

kingshard is under the Apache 2.0 license. See the LICENSE directory for details.

You can’t perform that action at this time.