MySQL数据库

226 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

MySQL的Text类型

数据类型存储范围
TINYTEXTL + 1 bytes,where L < 2^8
TEXTL + 2 bytes,where L < 2^16
MEDIUMTEXTL + 3 bytes,where L < 2^24
LONGTEXTL + 4 bytes,where L < 2^32

MySQL是单进程多线程模型,一个SQL语句无法利用多个cpu core去执行,这也就决定了MySQL比较适合OLTP业务系统,同时要针对MySQL去制定一些建模规范和开发规范,尽量避免使用Text类型,它不但消耗大量的网络和IO带宽,同时在该表上的DML操作都会变得很慢。 建议将复杂的统计分析类的SQL迁移到实时数仓OLAP中,例如目前使用比较多的clickhouse,阿里云的ADB,AWS得到Redshift都可以,做到OLTP和OLAP类业务SQL分离,保证业务系统的稳定性。

备注

OLTP(On-line transaction processing)联机事务处理,OLAP(On-line Analytical Processing)联机分析处理,从字面上来看OLTP是做事务处处理,OLAP是做分析处理,从对数据库操作来看,OLAP主要是对数据库的增删改,OLAP是对数据库的查询。

OLTP主要用来记录某类业务事件的发生,如购买行为,当行为产生后,系统会记录是谁在何时何地做了何事,这样的一行(或多行)数据会以增删改的方式在数据库中进行数据的更新处理操作,要求实时性高、稳定性强、确保数据及时更新成功,像公司常见的业务系统如ERP,CRM,OA等系统都属于OLTP。当数据积累到一定的程度,我们需要对过去发生的事情做一个总结分析时,就需要把过去一段时间内产生的数据拿出来进行统计分析,从中获取我们想要的信息,为公司做决策提供支持,这时候就是在做OLAP了。

OLTPOLAP
业务目的处理业务,如订单、合同等业务支持决策
面向对象业务处理人员分析决策人员
主要工作负载增删改查询
主要衡量指标事务吞吐量查询响应速度(QPS)
数据库设计3NF或BCNF星型/雪花模型
可以认为OLAP是依赖于OLTP的,因为OLAP分析的数据都是由OLTP所产生的,也可以看作 OLAP是OLTP的一种延展,一个让OLTP产生的数据发现价值的过程。