MySql
iQuester
业精于勤,荒于嬉;行成于思,毁于随。
展开
-
问题2:Inodb自增主键和业务主键优缺点
读写比较多的操作,设置id作为自增主键。原创 2016-12-30 15:27:04 · 1463 阅读 · 0 评论 -
MySql逻辑结构
MySql逻辑结构如下图所示:原创 2017-01-18 16:13:20 · 359 阅读 · 0 评论 -
问题1:数据库选型
一:关系数据库,把数据组织为行,存储在表上,是sql的基础。作为几十年的老产品,每个技术人员必须掌握的技术。关系数据库最大优点是实现ACID(原子性,一致性,隔离性,持久性)原则,一般要求强事务类型业务,都要使用关系数据库存储。典型代表,mysql(开源,要求dba技能高),oracle(功能强悍,收费超级贵), ms sql server(易用,简单,收费)。 二:键值数据库,一般是作为缓存层,转载 2016-12-30 15:16:05 · 820 阅读 · 0 评论 -
问题9:查询优化器工作原理
MySQL采用基于开销的优化器(CBO),以确定处理查询的最解方式,也就是说执行查询之前,都会先选择一条自以为最优的方案,然后执行这个方案来获取结果。 MySQL优化器中,一个主要的目标是只要可能就是用索引,而且使用条件最严格的索引来尽可能多、尽可能快地排除那些不符合索引条件的数据行。 JOIN::optimize()是整个查询优化器的核心内容。查询优化主要对Join进行简化、优化where条件原创 2016-12-30 15:48:19 · 737 阅读 · 0 评论 -
问题8:数据库innodb锁和阻塞信息查看
关系数据库是并发系统,满足ACID要求,锁是实现该特性的一项技术。锁的类型有共享锁和排它锁。共享锁是相互不阻塞,在同一个时间可以并发,例如select读操作。排它锁会相互阻塞写操作,理论上不阻塞读操作。当一个表的阻塞语句达到非常高的数量级也会导致无法读的操作,因为表的句柄打开数量也是有限的。 Innodb的锁是通过加载在索引上实现。若是一个表没有索引,innodb默认锁粒度从行级升为表级。并发性能转载 2016-12-30 15:45:42 · 1706 阅读 · 0 评论 -
问题7:数据库多表关联方式
在关系型数据库中,多表关联方式是影响性能最大的技术。为什么会把mysql定义为中小型数据库?主要原因是mysql是不支持hash join的。这对多个大表关联查询造成性能的瓶颈。因此,在大数据领域,比较少使用mysql作为后台数据库。不过,也是有规避的方法,例如我们公司bi项目使用mysql,需要把表设计为宽表,进行反范式设计,减少多表关联。虽然单表的数据量大了,但是查询速度快了非常多,从几十秒降到转载 2016-12-30 15:43:13 · 5642 阅读 · 0 评论 -
问题6:数据库和服务器关键性能指标
QPS:Qeury Per Second 每秒查询次数,顾名思义,数据库一秒钟能响应应用服务器查询的次数,该指标体现数据库吞吐能力,一般生产系统oltp单实例的峰值在2万左右,超过3万需要对实例进行扩容或者业务分拆。 TPS:Transaction Per Second 每秒事务次数,数据库一秒内能处理业务提交事务的次数,操作包含插入,修改,删除操作。一般生产系统oltp业务单实例的峰值在2000原创 2016-12-30 15:41:44 · 6171 阅读 · 0 评论 -
问题4:数据库连接池使用
长连接是指使用了连接池技术,业务服务器启动的时候,会创建指定的连接数和数据库交互,这些会话一直存在,当前会话内容处理完成后,不会断开,会给下一个事件使用。在数据库上面,会话空闲的状态是Sleep,活跃的状态是Query等。 短连接就是指应用代码直接连接数据库,没有使用中间件。会话处理完成后,会自动断开连接。 数据库连接是关键的,昂贵的资源,创建连接,断开连接都是物理操作,消耗非常多物理资源,当应转载 2016-12-30 15:36:05 · 308 阅读 · 0 评论 -
问题5:数据库设计
数据库设计使用的工具,通过图表可以非常简单易懂理解各个表的关系,一般使用PowerDesigner或ERwin进行表设计,创建ER(实体关系模型)图表,然后导出sql脚本。特别注意,通过工具导出脚本包含外键设计,需要去除外键语句。若是中途接手的项目,没有任何设计文档,可以使用工具逆向工程生成ER图表。 从业务读写特性来看,业务可以实现读写分离。目前二手房,新房,基础数据库采用mha架构,一主多从,转载 2016-12-30 15:38:09 · 416 阅读 · 0 评论 -
问题3:mysql explain执行计划查看
使用explain 对sql进行分析,若是select的话,直接使用,update,delete,insert则需要转化成select语句进行分析。原创 2016-12-30 15:33:32 · 318 阅读 · 0 评论 -
MySql
1、MySQL行级锁、表级锁、页级锁详细介绍2、mysql 5.6 binlog组提交实现原理 3、MySQL的InnoDB索引原理详解4、MySQL索引背后的数据结构及算法原理原创 2017-02-20 13:00:32 · 227 阅读 · 0 评论