InnoDB Memcached
插件,大幅提升MySQL查询性能MySQL自带有强大的Memcached插件,能够将InnoDB表中的数据直接映射到内存中,实现高性能的键值对存储。这意味着,我们可以像操作传统Memcached一样,通过简单的key来快速获取数据,而无需经过复杂的SQL解析过程
InnoDB Memcached
插件安装:mysql> SOURCE /usr/local/mysql/share/innodb_memcached_config.sql
mysql> INSTALL PLUGIN daemon_memcached soname "libmemcached.so";
mysql> --需要重启mysqld服务进程才生效
INSERT INTO innodb_memcache.containers (
name, db_schema, db_table, key_columns, value_columns,
flags, cas_column, expire_time_column, unique_idx_name_on_key
) VALUES (
'', 'test', 'users', 'username', 'password|email',
'flags', 'cas_column', 'expire_time_column', 'username'
);
mysql> select * from innodb_memcache.containers;
+-------+-----------+-----------+-------------+----------------+-------+------------+--------------------+------------------------+
| name | db_schema | db_table | key_columns | value_columns | flags | cas_column | expire_time_column | unique_idx_name_on_key |
+-------+-----------+-----------+-------------+----------------+-------+------------+--------------------+------------------------+
| aaa | test | demo_test | c1 | c2 | c3 | c4 | c5 | PRIMARY |
| users | test | users | username | password|email | flags | cas_column | expire_time_column | username |
+-------+-----------+-----------+-------------+----------------+-------+------------+--------------------+------------------------+
2 rows in set (0.00 sec)
注:username为key,password|email为value,并且使用竖线作为分隔符。
ALTER TABLE users
ADD COLUMN `flags` INT(10) UNSIGNED DEFAULT '0',
ADD COLUMN `cas_column` BIGINT(20) UNSIGNED DEFAULT '0',
ADD COLUMN `expire_time_column` INT(10) UNSIGNED DEFAULT '0';
让我们逐个解析这些新增的列:
1. flags
列:
2. cas_column
列:
3.expire_time_column
列:
shell> echo "stats" | nc localhost 11211
# cat php_memcached.php
<?php
// echo "get @@users.zhangsan" | nc localhost 11211
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
//$memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('@@users.lisi'); //从内存中取出key的值
echo $get_value;
?>
# php php_memcached.php
123456|lisi@xxx.com
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。