一简介 整体梳理下查询平台所需要的功能
二 目标
使用人员:研发
目标数据库: 从库
三 功能选择
1 普通sql语句查询只能支持三种查询
1 select * from limit n 因为要返回前端展示,所以N必须限制
2 select count()/sum() 聚合函数因为只返回总数,所以无需限制
3 explain select 支持生成explain计划树
2 主从延时判断
因为目标查询库是从库,所以当主从延时的情况下,查询是不准确的,需要手动确认,这点非常重要,我们就遇到过这种情况
3 表索引查询
通过show index from的模式 查看 表的索引.这也是查询平台所必须的
4 csv导出功能
1 设计中间下载服务器,比如nginx提供前端下载功能
2 由于python直接查询后台并写入csv文件,所以无需限制sql语句.
3 随机生成文件名,然后返回到前端提供下载即可
四 其他注意
1 创建只能执行explain/show/select的用户,防止出现注入危险
2 不止要在vue,后端drf也要做相关策略,防止通过api接口进行注入
五 用户日志记录
1 通过ldap登录,然后在提交查询时,将用户行为保存在表中
2 用户行为表采用按照时间倒叙显示,方便查询