济南商务网站建设,做家电网站,怎么做论坛网站,做网站刷赞qq怎么赚钱近几个月的心情真是安排的妥妥的#xff0c;呈现W状。多的不说了#xff0c;这里对SQL的测试进行简单梳理#xff0c;制作一份SQL Cheat Sheet。0x01、数据库基本架构Clinet层Server层连接器网络连接建立、管理长连接导致的OOM的自动处理权限管理缓存KV分析器词法分析语法分…近几个月的心情真是安排的妥妥的呈现W状。多的不说了这里对SQL的测试进行简单梳理制作一份SQL Cheat Sheet。0x01、数据库基本架构Clinet层Server层连接器网络连接建立、管理长连接导致的OOM的自动处理权限管理缓存KV分析器词法分析语法分析AST语法树优化器多表连接顺序索引选取执行器MySQL调用存储引擎提供的接口其他内置函数存储过程触发器视图存储引擎层数据R/W0x02、SQL词法分析A、解析SQL步骤词法分析将SQL字符串拆分成包含关键词识别的字符段Tokens。语法分析利用自顶向下或自底向上的算法将Tokens解析为ASTAbstract Syntax Trees。错误检测、恢复、提示推断需要利用语法分析产生的AST。B、词法分析词法分析根据规则将SQL字符串切分为若干字符段切分的规则与定义的Tokens有关。SQL的Token分类精简注释关键字SELECT、CREATE操作符、-、开闭合标志支持子句占位符?空格引号包裹的文本、数字、字段词法分析阶段只需识别关键词即可切分正则而关键词的辨认、语意处理、上下文相关都在语法分析阶段处理。C、语法分析语法分析分为自顶向下与自底向上自顶向下一般采用递归下降方式处理自底而上一般采用移进shift规约reduce方式处理。0x03、数据库测试点 - 基本流程连接数据库网络连接权限DB错误创建数据库创建表结构执行SQL语句、存储过程、触发器大小写敏感SQL保留字SQL语法错误释放与数据库连接0x04、数据库性能测试A、可能会导致性能降低的原因物理存储逻辑设计数据参数调整SQL语句优化B、MySQL性能测试方法1、测试工具mysqlslapmysqlslap是MySQL 5.1.4之后自带的benchmark基准测试工具该工具可以模拟多个客户端同时并发的向服务器发出查询更新。使用方法https://my.oschina.net/moooofly/blog/152547。2、测试流程建立测试数据库database和待测试的表tables根据table的结构利用脚本生成一定数量的有效随机数据通过mysqlslap对相应query语句进行测试最后进行结果数据的分析。3、关键语句考虑到MySQL的实际应用情况通过资源属性查询资源的操作为主要操作且这类操作的耗时占总操作耗时的比例为最大故这类操作的查询语句为关键语句对整个数据库性能影响很大可以通过测试这个关键语句得出的结果来评估整个数据库的性能。0x05、sysbenchA、基准测试数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑更加简单、直接、易于测试数据可以由工具生成不要求真实而压力测试一般考虑业务逻辑要求真实的数据。对数据库的基准测试的作用就是分析在当前的配置下包括硬件配置、OS、数据库设置等数据库的性能表现从而找出MySQL的性能阈值并根据实际系统的要求调整配置。针对MySQL进行基准测试时一般使用专门的工具进行例如mysqlslap、sysbench等。其中sysbench比mysqlslap更通用、更强大且更适合Innodb模拟了许多Innodb的IO特性。B、sysbenchsysbench是跨平台的基准测试工具支持多线程支持多种数据库主要包括以下几种测试cpu性能磁盘io性能调度程序性能内存分配及传输速度POSIX线程性能数据库性能OLTP基准测试STUB参考作业部落 Cmd Markdown 编辑阅读器https://www.slideshare.net/yejr/my-sql-20131020https://juejin.im/entry/59e051ad6fb9a0450b6565echttps://cloud.tencent.com/developer/article/1004894https://github.com/dt-fe/weekly/blob/master/64.精读《手写 SQL 编译器 - 词法分析》.md