標籤:des http 使用 os io 資料 for ar
一,介紹
MemSQL號稱世界上最快的Distributed Relational Database Service,相容mysql但快30倍,能實現每秒150萬次事務。原理是僅用記憶體並將SQL先行編譯為C++。
二,部署
官網:http://www.memsql.com/download/
- 安裝
$ tar -xzf memsqlbin_amd64.tar.gz
$ cd memsqlbin
- 啟動
$ ./check_system
./memsqld -u root --port 3307
- 關閉
$ killall memsqld
三,簡單實用
$ mysql -u root -h 127.0.0.1 -P 3306 --prompt="memsql> " 註: 這裡-h不要使用localhost,用 127.0.0.1memsql> show databases;+--------------------+| Database |+--------------------+| information_schema || memsql |+--------------------+2 rows in set (0.00 sec) 建庫:memsql> create database chris001;Query OK, 0 rows affected (0.08 sec) memsql> show databases; +--------------------+| Database |+--------------------+| information_schema || memsql || chris001 |+--------------------+3 rows in set (0.00 sec) 建表: memsql> use chris001;Database changedmemsql>memsql> create table test_001 (id int primary key, name varchar(100), addr varchar(200),num int); Query OK, 0 rows affected (6.71 sec) memsql>memsql>memsql> show tables;+--------------------+| Tables_in_chris001 |+--------------------+| test_001 |+--------------------+1 row in set (0.00 sec) memsql> desc test_001;+-------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+--------------+------+-----+---------+-------+| id | int(11) | NO | PRI | NULL | || name | varchar(100) | YES | | NULL | || addr | varchar(200) | YES | | NULL | || num | int(11) | YES | | NULL | |+-------+--------------+------+-----+---------+-------+4 rows in set (0.00 sec) 插入資料後查詢: memsql> insert into test_001 values (1,'chris','xxx',100);Query OK, 1 row affected (1.82 sec) memsql>memsql>memsql> select * from test_001;+----+-------+------+------+| id | name | addr | num |+----+-------+------+------+| 1 | chris | xxx | 100 |+----+-------+------+------+1 row in set (0.71 sec) memsql> select * from test_001;+----+-------+------+------+| id | name | addr | num |+----+-------+------+------+| 1 | chris | xxx | 100 |+----+-------+------+------+1 row in set (0.00 sec) memsql> select * from test_001;+----+-------+------+------+| id | name | addr | num |+----+-------+------+------+| 1 | chris | xxx | 100 |+----+-------+------+------+1 row in set (0.00 sec) memsql> select * from test_001;+----+-------+------+------+| id | name | addr | num |+----+-------+------+------+| 1 | chris | xxx | 100 |+----+-------+------+------+1 row in set (0.00 sec) memsql> select count(0) from test_001;+----------+| count(0) |+----------+| 1 |+----------+1 row in set (0.63 sec) memsql>memsql> select count(0) from test_001;+----------+| count(0) |+----------+| 1 |+----------+1 row in set (0.00 sec) memsql> select count(0) from test_001;+----------+| count(0) |+----------+| 1 |+----------+1 row in set (0.00 sec) 查詢的時候,服務端會打出日誌: 136674795 2014-08-15 14:02:31 INFO: Table chris001.test_001 compiled in 6709 miliseconds (3185 miliseconds for header)136678436 2014-08-15 14:02:31 INFO: Table chris001.test_001 row size 80 bytes (base overhead 32 bytes, column id 4 bytes, column name 12 bytes, column addr 12 bytes, column num 8 bytes)186966810 2012-06-19 10:03:21 INFO: Query chris001.'insert into test_001 values (?,?,?,?)' compiled in 1825 miliseconds194366714 2012-06-19 10:03:29 INFO: Query chris001.'select * from test_001' compiled in 712 miliseconds283342115 2012-06-19 10:04:58 INFO: Query chris001.'select count(0) from test_001' compiled in 632 miliseconds 從以上測試我們看到,兩次查詢的首次和之後時間對比: select * from test_001; (0.71 sec) (0.00 sec) select count(0) from test_001; (0.63 sec) (0.00 sec) 從日誌可以知道,首次查詢的耗時基本全都花在編譯上了 。
四,應用情境
MemSQL的插入效能非常高,所以它們的勘探群是那些存在頻繁交易的系統用