MySQL系列(24):记一条要实行类似于行转列的统计SQL实现过程
摘要内容写在此处
MySQL 查询是以 SELECT 语句形式执行数据库中的所有查找操作,SELECT 操作在执行的 SQL 语句中占大比例,SELECT 调优可以说是对 SQL 优化的首要任务。
查询调优除了应用于 SELECT 语句外,还适用于诸如 create table…as select、insert in to…select 和 delete 语句中的 where 子句等构造。这些语句还有额外的性能考虑,因为它们将写操作与面向读的操作结合在了一起。
初衷,做开发有些年,数据库这块大部分也是和 MySQL
打交道,有很多临时、零散、不成体系的笔记和日志,但极缺乏一个对MySQL全面的、系统的认知,所以写这系列文章,以期补上。
本系列文章基于 MySQL 8.0
版本,也是市面和云平台用生产部署使用的较多的版本,也会涉及MariaDB
相关特性。在写这篇文章之时,MySQL 8.0
已正式发布,是个大版本,有较大的改动和优化,基于新版本稳定性问题的考虑,估计目前市场使用极少。后续对 MySQL 8.0.x特性做补充。
在关系数据库领域,MySQL占大半的市场份额,特别是中小型企业或互联网企业。开源的MySQL社区版本是免费的,基本可以满足对业务数据存储的需求。
近些年出现了很多优秀的NOSQL
产品,个人认为NOSQL凭借优秀的特性,与关系数据库是个互相协作的关系,充分发挥各自的优势,为系统提供优秀服务。
目前还看不到NOSQL
可以完全替代关系数据库的迹象,关系数据库仍将长久生存下去,MySQL 仍值的系统研究学习。
MySQL 相关链接:MySQL 官网,MySQL Community Server Download,MySQL Documentation, MySQL GitHub,MySQL test_db GitHub
MariaDB(mysql 分支) :MariaDB Foundation(基金会),MariaDB Downloads,MariaDB 社区官网 MariaDB Knowledge Base, MariaDB GitHub
MyBatis 的强大特性之一便是它的动态 SQL,Mybatis 在对 SQL 语句进行预编译之前,会对 SQL 进行动态解析,解析为一个 BoundSql 对象,同时对动态 SQL 进行处理。
动态 SQL 主要通过OGNL
表达式实现 SQL 可以动态判断和选择参数。