
MySQL
JeffCoding
热爱移动互联网,热爱安卓,热爱Java
展开
-
MYSQL性能优化的最佳20+条经验
1. 为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的转载 2017-03-11 11:14:05 · 612 阅读 · 0 评论 -
MySQL 加锁处理分析
1 背景 11.1 MVCC:Snapshot Read vs Current Read 21.2 Cluster Index:聚簇索引 31.3 2PL:Two-Phase Locking 31.4 Isolation Level 42 一条简单SQL的加转载 2017-07-19 22:40:48 · 597 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
数据结构及算法基础索引的本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为转载 2017-03-21 16:13:08 · 521 阅读 · 0 评论 -
MySQL的事务隔离级别
一、数据库的隔离级别概述隔离级别脏读(Dirty Read)不可重复读(NonRepeatable Read)幻读(Phantom Read)未提交读(Read uncommitted)--(脏读)可能可能可能已提交读(Read committed)--(不可重复原创 2017-07-15 11:32:30 · 704 阅读 · 0 评论 -
数据库面试点总结
1、Sql 约束http://www.cnblogs.com/henw/archive/2012/08/15/2639510.html2、修改列类型MySQL:ALTER TABLE tableName modify column columnName 类型;Oracle:ALTER TABLE tableName modify(columnName 类型);3、联合索引最左前缀原则例如在表(na原创 2017-03-28 19:52:00 · 582 阅读 · 0 评论 -
Order By文件排序和索引排序
在MySQL中的ORDER BY有两种排序实现方式:1、利用有序索引获取有序数据2、文件排序在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort。1.利用有序索引获取有序数据 取出满足过滤条件作为排序条件的字段,以及可以直接定位到行数据的行指针转载 2017-07-30 17:39:24 · 5876 阅读 · 0 评论 -
MySQL优化细节分析
一、数据类型优化1. 为什么要尽量避免NULL?因为对于NULL列,MySQL更难优化,因为NULL使得索引,索引统计和值都更加复杂可为null的列会使用更多的存储空间当null列被索引时,每一个索引记录需要1个额外的字节,在MyISAM可能还会导致固定大小的索引变为可变大小的索引2. 整数类型指定长度int(10),大多数情况下是没有意义的,对于存储和计算来说,int(1)和int(10)是原创 2017-04-05 16:48:55 · 1072 阅读 · 0 评论 -
SQL中的where条件,在数据库中提取与应用浅析
一、初始条件create table t1 (a int primary key, b int, c int, d int, e varchar(20));create index idx_t1_bcd on t1(b, c, d);insert into t1 values (4,3,1,1,’d’);insert into t1 values (1,1,1,1,’a’);insert into转载 2017-07-30 15:32:58 · 1403 阅读 · 0 评论 -
经典sql面试题
表结构Student(s_id, sname, sage, ssex) 学生表 Course(c_id, cname, t_id)课程表 SC(s_id, c_id, score)成绩表 Teacher(t_id,tname)教师表建表语句CREATE TABLE `student` ( `s_id` int(11) DEFAULT NULL, `sname` varchar(32)原创 2017-05-12 21:12:46 · 2363 阅读 · 1 评论 -
一分钟掌握数据库垂直拆分
一、缘起当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表:user(uid bigint,name varchar(16),pass varchar(16),age int,sex tinyint,flag tinyint,sign varchar(64),intro转载 2017-03-11 19:19:53 · 391 阅读 · 0 评论 -
MySQL性能优化
一、MySQL优化前言为什么要优化? MSYQL是基于文件的,因此当打开文件数达到一定限制,就会进行导致频繁的IO操作,这是属于系统配置可以从哪些方面着手优化?如何发现有问题可优化的SQL? 当我们打开慢查日志文件,就可以看到我们的SQL语句的具体信息,例如: 每一项的含义: 但是如果慢查日志SQL很多的时候,直接看日志文件就很吃力,因此可以通过工具来分析:例如mysqldumpslow原创 2017-03-11 18:55:21 · 490 阅读 · 0 评论 -
Mysql(Innodb)如何避免幻读
幻读Phantom RowsThe so-called phantom problem occurs within a transaction when the same query produces different sets of rows at different times. For example, if a SELECT is executed twice, but re转载 2017-08-12 19:22:00 · 1520 阅读 · 0 评论