In the last year, we've gone from millions of pieces of data to billions of pieces of data. I will speak on a solution for scaling up and about the challenges presented. Also covered will be the future of data at Qihoo 360 with MongoDB.
In the last year, we've gone from millions of pieces of data to billions of pieces of data. I will speak on a solution for scaling up and about the challenges presented. Also covered will be the future of data at Qihoo 360 with MongoDB.
MySQL 5.6 GA版本已经发布了,其中包含了大量的新特性,了解这些新特性,不仅对数据库内核研发有帮助,对于更好的使用MySQL数据库也有着极大的意义。本分享将深入剖析MySQL 5.6新特性的实现细节,一共分为两期:分别是InnoDB引擎以及MySQL Server。本次为第一期,分享 MySQL 5.6 InnoDB引擎中的性能优化与功能增强。
MySQL 5.6 GA版本已经发布了,其中包含了大量的新特性,了解这些新特性,不仅对数据库内核研发有帮助,对于更好的使用MySQL数据库也有着极大的意义。本分享将深入剖析MySQL 5.6新特性的实现细节,一共分为两期:分别是InnoDB引擎以及MySQL Server。本次为第一期,分享 MySQL 5.6 InnoDB引擎中的性能优化与功能增强。
18. MTAtlas主要模块-‐SQL处理模块
– 为什么要添加SESSION级变量的支持?
client_con1
MySQL
连接
MySQL 连接
Q1:set
SQL_SELECT_LIMIT=1
Q2:select
*
from
t1
where
id
=
10;
set
SQL_SELECT_LIMIT=1
select
*
from
t1
where
id
=
10;
Q3:select
*
from
t2
where
id
=10;(10
rows)
client_con2
连接池SQL处理
set
SQL_SELECT_LIMIT=1;
select
*
from
t1
where
id
=
10;
select
*
from
t2
where
id
=10;
19. MTAtlas主要模块-‐SQL处理模块
client_con1
MySQL 连接
client_status=>(null)
Q1:set
SQL_SELECT_LIMIT=1
client_status=>(SQL_SELECT_LIMIT=1)
Q2:select
*
from
t1
where
id
=
10;
client_status=>(null)
Q3:select
*
from
t2
where
id
=10;(10
rows)
client_con2
连接池SQL处理
sever_status=>(null)
set
SQL_SELECT_LIMIT=1;
status=>(SQL_SELECT_LIMIT=1)
select
*
from
t1
where
id
=
10;
set
SQL_SELECT_LIMIT=default;
select
*
from
t2
where
id
=10;
22. MTAtlas主要模块-‐连接池管理
– 为什么要做这样的修改
client_con1(user1)
MySQL 连接
client_status=>(null)
Q3:select
*
from
t2
where
id
=10;(10
rows)
client_con2(user2)
连接池SQL处理
client_status=>(null)
Q1:set
SQL_SELECT_LIMIT=1
client_status=>(SQL_SELECT_LIMIT=1)
Q2:select
*
from
t1
where
id
=
10;
sever_status=>(null)
set
SQL_SELECT_LIMIT=1;
status=>(SQL_SELECT_LIMIT=1)
select
*
from
t1
where
id
=
10;
CHANGE_USER-‐>user2:ERROR
set
SQL_SELECT_LIMIT=default;
(user1)
select
*
from
t2
where
id
=10;
(user1)
23. MTAtlas主要模块-‐连接池管理
– 按用户分配后的效果
client_con1(user1)
user1:conn_ad
client_status=>(null)
Q3:select
*
from
t2
where
id
=10;(10
rows)
client_con2(user2)
连接池SQL处理
user2:conn_ad
sever_status=>(null)
set
SQL_SELECT_LIMIT=1;
status=>(SQL_SELECT_LIMIT=1)
select
*
from
t1
where
id
=
10;
sever_status=>(null)
select
*
from
t2
where
id
=10;
client_status=>(null)
Q1:set
SQL_SELECT_LIMIT=1
client_status=>(SQL_SELECT_LIMIT=1)
Q2:select
*
from
t1
where
id
=
10;
24. MTAtlas主要模块-‐访问控制
• 访问控制
– SQL 过滤
• 创建黑名单,匹配一类查询
– 示例1:”select * from
tbl
where
col2
=
?”,
– 示例2:“update
tbl
set
col1
=
? where
pkey
=
?”
• 根据执行频率,执行时间自动添加黑名单
• 提供手动添加黑名单
– 根据后台Thread
running进行负载均衡
– 用户IP限制
– 从库流量配置