
数据库
文章平均质量分 77
不折腾就闹心
这个作者很懒,什么都没留下…
展开
-
十三章 分组数据 GROUP BY ,HAVING
汇总数据都是在表的所有数据或匹配特定的WHERE子句的数据上进行的,如果要返回特定情况的数据怎么办呢 分组!分组允许把数据分为多个逻辑组,以便对每个组进行聚集计算。创建分组SELECT id,COUNT(*) AS prods FROM products GROUP BY id 因为使用了GROUP BY 就不必指定要计算和估算的每个组了。系统会自动完成,会对每个组而不是整个结果进行聚集、 G原创 2017-08-18 15:25:37 · 376 阅读 · 0 评论 -
mysql优化 show命令 慢查询日志 explain profiling
目录一、优化概述二、查询与索引优化分析1性能瓶颈定位Show命令慢查询日志explain分析查询profiling分析查询 2索引及查询优化三、配置优化1) max_connections2) back_log3) interactive_timeout4) key_buffer_size5)转载 2017-08-24 10:12:12 · 786 阅读 · 0 评论 -
Mysql事务以及加锁机制事务的特征ACID
Mysql事务以及加锁机制 事务的特征ACID,即原子性、一致性、隔离性、持久性。 原子性保证一个事务为一个最小的单元,内部不可分割; 一致性保证事务中的每个操作线程不可单独提交,成功则一起提交,不成功则事务回滚; 隔离性保证不同事务间看到的数据视图相互独立,相互隔离(隔离级别可设置); 持久性保证事务提交后数据会持久的保存下来; sql转载 2017-08-24 09:52:02 · 422 阅读 · 0 评论 -
数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
一、数据库事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。√: 可能出现 ×: 不会出现脏读不可重复读幻读Read转载 2017-08-23 18:05:16 · 388 阅读 · 0 评论 -
innoDB和MyISAM的区别
1、存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。2、MySQL中的数据用各种不同的技术存储在文件(或内存)中,这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不同功能和能力。在MySQL中将这些不同的技术及配套的相关功能称为存储引擎。MySQL中常用的几种存储引擎:innoDB原创 2017-08-23 16:28:19 · 475 阅读 · 0 评论 -
索引失效的情况
索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 2.对于多列索引,不是使用的第一部分,则不会使用索引 3.like查询是以%开头 4.如果列类型是字符串转载 2017-08-23 15:20:58 · 445 阅读 · 0 评论 -
数据库索引原理及优化
本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接。一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MyS转载 2017-08-23 14:13:01 · 608 阅读 · 0 评论 -
MySQL数据库索引的4大类型以及相关的索引创建
以下的文章主要介绍的是MySQL数据库索引类型,其中包括普通索引,唯一索引,主键索引与主键索引,以及对这些索引的实际应用或是创建有一个详细介绍,以下就是文章的主要内容描述。(1)普通索引这是最基本的MySQL数据库索引,它没有任何限制。它有以下几种创建方式:创建索引CREATE INDEX indexName ON mytable(username(length转载 2017-08-23 13:40:54 · 473 阅读 · 0 评论 -
数据库索引最基本的原理
我们通过一个简单的例子来开始教程,解释为什么我们需要数据库索引。假设我们有一个数据库表 Employee, 这个表有三个字段(列)分别是 Employee_Name、Employee_Age 和Employee_Address。假设表Employee 有上千行数据。现在假设我们要从这个表中查找出所有名字是‘Jesus’的雇员信息。我们决定使用下面的查询语句:SELECT * FRO转载 2017-08-23 11:42:14 · 380 阅读 · 0 评论 -
数据库索引及基本优化入门
一 前言 经常在面试中发现很多人工作了好多年了,项目经验也不少,用过各种数据库,但大都不知道这些SQL语句背后的基本原理,更别说数据库优化了。平时做项目只知道实现功能,懒得学习,懒得思考,懒得看书(其实本人也是,不要找借口说这是China国情,项目是给boss做的,但技术和成长是你自己的)。 本篇文章主要讲述数据库索引的基本原理,及基本的数据库优化的知识。所有知识均为本转载 2017-08-23 11:21:14 · 649 阅读 · 0 评论 -
十二章 汇总数据
十二章 汇总数据 可以使用的地方: 确定表中行数(或者满足某个条件或者包含某个特定值的行数) 获得表中行组的和 找出列表(或所有行或某些行的最大值,最小值,平均值) 聚集函数:运行在行组上,计算和返回单个值的函数 1 AVG()返回某列的平均值,只能用于单个列,且列名作为参数,如果计算多个列的平均数需要多个AVG() AVG()通过对表中的行数计数并计算特定列值之和,求得该列的原创 2017-08-15 17:32:33 · 434 阅读 · 0 评论 -
17 组合查询
有多条SELECT语句,并将多条查询结果作为单个查询结果返回,这些组合查询称为并或复合查询 用法:在单个查询中从不同的表中返回类似结构的数据 对单个表执行多个查询,按单个查询返回数据 1 创建组合查询:用UNION操作符来组合数条SQL查询,利用UNION可以给出多条SELECT 语句,将他们的结果组合成单个结果集、SELECT id,name,price FROM products原创 2017-08-21 16:53:25 · 463 阅读 · 0 评论 -
16 创建高级联结
1 使用表别名 SELECT vend_name,prod_name,prod_price FROM vendors AS v,products AS p WHERE v.vend_id=p.vend_id AND v.name=p.name表别名只在查询执行中使用,与列别名不一样,表别名不返回到客户机2 使用不同类型的联结:之前是内部联结或等值联结2.1自联结 :可以在单条SELECT语句中不止原创 2017-08-21 16:39:36 · 418 阅读 · 0 评论 -
15 联结表
关系表的设计是要保证把信息分解成多个表,一类数据一个表,各表通过某些常用的值互相关联 主键:唯一标识 外键:外键为某一个表中的一列,它包含另一个表的主键值, 优点:更有效存储,更方便处理,更大的伸缩性 注意:联结不是物理实体,在实际的数据库表中是不存在的,由MYSQL根据需要建立,存在于查查询的执行中SELECT vend_name,prod_name,prod_price FROM ven原创 2017-08-18 18:07:18 · 470 阅读 · 0 评论 -
14 子查询
利用子查询进行过滤:可以把一条SELECT语句返回的结果用于另一条SELECT语句的WHERE子句SELECT name,contact FROM customers WHERE id IN(SELECT id FROM orders WHERE order_num IN(SELECT order_num FROM orderitems WHERE id='TNT2'));先从最里面的语句开始执原创 2017-08-18 15:55:00 · 349 阅读 · 0 评论 -
数据库表的连接 join on
Left Join, Inner Join 的相关内容,非常实用,对于理解原理和具体应用都很有帮助!left join 是left outer join的简写,left join默认是outer属性的。 Inner Join Inner Join 逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。这个和用select查询多表是一样的效果,所以很少用到; ou转载 2017-09-02 12:49:15 · 2373 阅读 · 0 评论