mysql优化
文章平均质量分 92
xuehuagongzi000
这个作者很懒,什么都没留下…
展开
-
msyql加索引的技巧经验
mysql加索引优化技巧(1)、强制或者忽略某个索引(2)、看一下列的类型和sql的值的类型是否匹配,不匹配不能用索引,会导致是用了索引反而会很慢。(3)、组合索引中的一个字段占据数据量很大(比如说atype,domain等),会导致使用索引反而会变得很慢。索引字段最好过滤掉大部分数据。(4)、组合索引的顺序很重要,扫描的记录数会变少,第一个字段最好是过滤掉的数据最多的字段。(...原创 2019-08-26 20:01:20 · 358 阅读 · 0 评论 -
MySQL性能分析语句 show profile/show profiles
功能说明show profile 和 show profiles 语句可以展示当前会话(退出session后,profiling重置为0)中执行语句的资源使用情况.例一、1、查看是否打开了性能分析功能select @@profiling;2、打开 profiling 功能set profiling=1;3、执行sql语句4、执行 show profiles ...原创 2019-05-28 18:50:07 · 219 阅读 · 0 评论 -
mysql中explain的type的解释
虽然 explain返回的结果项很多,这里我们只关注三种,分别是type,key,rows。其中key表明的是这次查找中所用到的索引,rows是指这次查找数据所扫描的行数。而type则是本文要详细记录的连接类型,前两项重要而且简单,无需多说。type -- 连接类型all这便是所谓的“全表扫描”,rangerange指的是有范围的索引扫描,相对于index的全索引扫描,它...原创 2019-05-08 19:22:40 · 1192 阅读 · 0 评论 -
为什么mysql innodb索引是B+树数据结构
一、为什么mysql innodb索引是B+树数据结构?言简意赅,就是因为:1.文件很大,不可能全部存储在内存中,故要存储到磁盘上2.索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(为什么使用B-/+Tree,还跟磁盘存取原理有关。)3、B+树所有的Data域在叶子节点,一般来说都会进行一个优化,就是将所有的叶子节点用指针串起来,这样遍历叶子节点就能获得全部数据。原创 2018-01-05 22:52:44 · 3965 阅读 · 0 评论 -
Mysql表结构优化
前言 很多人都将作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求。殊不知,在N年前被奉为“圣经”的数据库设计3范式早就已经不完全适用了。这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用。 由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的转载 2016-07-07 23:09:36 · 486 阅读 · 0 评论 -
MySQL InnoDB引擎 MVCC并发控制
1.MVCC定义MVCC全称Mutli Version Concurreny Control,多版本并发控制,也可称之为一致性非锁定读;它通过行的多版本控制方式来读取当前执行时间数据库中的行数据。实质上使用的是快照数据。2.为什么要使用MVCC消除锁的开销;这个较好理解,如果要保证数据的一致性,最简单的方式就是对操作数据进行加锁,但是加锁不可避免的会有锁开销。所以,如果转载 2017-09-24 20:22:42 · 253 阅读 · 0 评论 -
数据库中的事务隔离级别和锁的关系
转载自:http://tech.meituan.com/innodb-lock.html我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,转载 2017-09-24 20:06:44 · 1310 阅读 · 0 评论 -
Error Code: 1093. You can't specify target table,delete或者update的where条件中有子查询解决办法
Error Code: 1093. You can't specify target table 'ws_product' for update in FROM clause这个是我们在使用update或者delete语句时,在where条件里面加入的子查询导致的。例如如下的update语句:update table set type = 'static' where id in原创 2017-09-03 21:14:54 · 5399 阅读 · 0 评论 -
sql语句模糊查询并且要传入参数
jdbc中的查询语句会经常用到:String sql2 = "select u.USERID from USER_PREF u " + "where u.USERID like ?||'%' and ( u.key like 'SEARCH_TEMPLATE:%')";uidList = (List) qr.query(sql2, new ColumnListHandler(原创 2016-09-28 17:53:10 · 7985 阅读 · 0 评论 -
点击页面多次后,jdbc操作,抛数据库连接资源不足异常
一开始以为是数据库连接池配置的问题。一开始配置xml version="1.0" encoding="UTF-8"?>c3p0-config> default-config> property name="jdbcUrl">jdbc:oracle:thin:@wiseuat.wisers.com:1521:uatdbproperty> property na原创 2016-08-17 18:13:56 · 431 阅读 · 0 评论 -
面经(人人车)
1.如何设计表结构数据类型MySQL与Java一样,也有数据类型。MySQL中数据类型主要应用在列上。 常用类型:| TINYINT: 小整形l int:整型| BIGINT 大整形l double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;l decimal:泛型型,在表单钱方面使用该类型,因为不原创 2016-07-07 20:36:41 · 1210 阅读 · 0 评论 -
数据库设计三大范式
转自:https://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为转载 2018-01-05 20:05:47 · 219 阅读 · 0 评论 -
浅谈mysql的搜索引擎之MyISAM和InnoDB的异同
MySQL改变表的存储引擎方法一:ALTER TABLE 转换MySQL表引擎最简单的方法是直接使用ALTER TABLE去修改表的定义。下面的这条语句将mytable表引擎转换成InnoDB mysql>ALTER TABLE mytable ENGINE = InnoDB; 优点:简单、可以使用于任何的表引擎。 缺点:需要执行很长时间,转换的过程是先定义一个新的引擎表,然后把原表中原创 2017-04-18 19:43:17 · 1688 阅读 · 1 评论 -
mysql组合索引中最左前缀匹配原理
最左前缀原理与相关优化高效使用索引的首要条件是知道什么样的查询会使用到索引,这个问题和B+Tree中的“最左前缀原理”有关。这里先说一下联合索引的概念。在上文中,我们都是假设索引只引用了单个的列,实际上,MySQL中的索引可以以一定顺序引用多个列,这种索引叫做联合索引,一般的,一个联合索引是一个有序元组,其中各个元素均为数据表的一列。另外,单列索引可以看成联合索引元素数为1的特例。以e转载 2017-10-15 22:49:08 · 4823 阅读 · 0 评论 -
mysql优化方式
Query语句优化的基本思路和原则在Mysql中有一个专门负责优化select语句的优化器模块,其主要功能是通过计算分析系统中收集的各种统计信息,为客户端请求的Query给出最优的执行计划。(1)优化更需要优化的Query高并发低消耗的Query对整个系统的影响高于低并发高消耗的大。所以先优化高并发低消耗的Query(2)永远用小结果集驱动大的结果集MySQL中join(连接查原创 2017-04-23 23:58:42 · 420 阅读 · 0 评论 -
centos7 安装mysql
CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm(下载mysql-server文件)# rpm -ivh mysql-community-release-el7-5.转载 2017-07-08 23:25:27 · 187 阅读 · 0 评论 -
再谈mysql中MYISAM索引和INODB索引的区别
MySQL数据库MyISAM和InnoDB存储引擎的比较MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData原创 2017-05-05 23:46:36 · 1879 阅读 · 0 评论 -
mysql是怎么实现的
mysql包含很多个模块,mysql初始化模块跟据系统配置参数初始化整个系统和存储引擎。连接线程模块负责将客户端请求和负责请求mysql服务器的链接线程连上。当客户端发出query请求的时候,会经过query解析器和query分发器,分发到查询缓存模块或者其他相关处理模块。各个模块收到分发模块分发过来的请求之后会通过访问控制模块检查连接用户是否有访问目标表的权限。最后根据表的存取引擎类型,提交请求原创 2017-04-18 15:04:45 · 629 阅读 · 1 评论