Welcome 微信登录

首页 / 数据库 / MySQL

MySQL中distinct语句的基本原理及其与group by的比较

MySQL中distinct语句的基本原理及其与group by的比较

DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别。同样可以通过松散索引扫描或者是紧凑索引扫描来实现,当然,在无法仅仅使用索引即能完成 DISTINCT 的时候,MySQL 只能通过临时表来完成。但是,和 GROUP BY 有一点差别的是,DISTINCT 并不需要进行排序。也就是说,在仅仅只是...
MySQL中distinct与group by语句的一些比较及用法讲解

MySQL中distinct与group by语句的一些比较及用法讲解

在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC)。 DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以...
mysql 数据库死锁原因及解决办法

mysql 数据库死锁原因及解决办法

死锁(Deadlock)所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。 一种情形,此时执行程序中两个或多个线程发生永久堵塞(等待),每个线程都在等待被其他线程占用并...
mysql数据库锁的产生原因及解决办法

mysql数据库锁的产生原因及解决办法

数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并 发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严 重影响应用的正常执行。在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,...
MySQL中create table as 与like的区别分析

MySQL中create table as 与like的区别分析

本文分析了MySQL中create table as 与like的区别。分享给大家供大家参考,具体如下:对于mysql的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢?复制代码 代码如下:create table t2 as select * from t1 where 1=2;或者复制代码 代码如下:limit 0;as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没...
MySQL中对于索引的基本增删查改操作总结

MySQL中对于索引的基本增删查改操作总结

创建索引MySQL创建索引的语法如下:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name[USING index_type]ON table_name (index_col_name,...)其中对应的语法变量信息如下:[UNIQUE|FULLTEXT|SPATIAL]中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引、全文索引、空间索引三种不同的索引类型。如果我们不指定任何关键字,则默认为普通索...
MySQL存储过程中使用动态行转列

MySQL存储过程中使用动态行转列

本文介绍的实例成功的实现了动态行转列。下面我以一个简单的数据库为例子,说明一下。数据表结构这里我用一个比较简单的例子来说明,也是行转列的经典例子,就是学生的成绩三张表:学生表、课程表、成绩表学生表就简单一点,学生学号、学生姓名两个字段CREATE TABLE `student` (`stuid` VARCHAR(16) NOT NULL COMMENT "学号",`stunm` VARCHAR(20) NOT NULL COMMENT "学生姓名",PRI...
MySQL中由load data语句引起死锁的解决案例

MySQL中由load data语句引起死锁的解决案例

一个线上项目报的死锁,简要说明一下产生原因、处理方案和相关的一些点.1、背景这是一个类似数据分析的项目,数据完全通过LOAD DATA语句导入一个InnoDB表中。为方便描述,表结构简化为如下:Create table tb(id int primary key auto_increment, c int not null) engine=innodb;导入数据的语句对应为Load data infile ‘data1.csv" into table tb...
初始化MySQL用户(删除匿名用户)

初始化MySQL用户(删除匿名用户)

安装完MySQL后,系统默认会创建一个不需要密码的root用户,和一个无用户名无密码的匿名用户(Anonymous Account)。进行下面的初始化操作以合理授权,增强安全。设置root密码先以root身份登入mysql -u root,设置root密码:SET PASSWORD FOR "root"@"localhost" = PASSWORD("new_password");创建新用户# 创建用户和设置密码CREATE USER "新用户"@"loc...
MySQL恢复中的几个问题解决方法

MySQL恢复中的几个问题解决方法

事情是这样的: 我有个BuyVM的VPS,结果人家机器挂了,然后新开了一个给我,我要求给我导出备份,人家还真抢救出来大部分数据.然后就是一个恢复的过程.Web恢复没有任何难度.问题就出在MySQL的恢复上,记一笔.1. data目录完整,但是无法读出任意一个表,show tables显示为空.起先是怀疑data目录有问题,尝试修复,提示不存在表. 经光总提醒说是不是用户组问题.指定用户组为mysql,解决.复制代码 代码如下:chown -R mysql ...
Mysql Binlog快速遍历搜索记录及binlog数据查看的方法

Mysql Binlog快速遍历搜索记录及binlog数据查看的方法

目标,开发人员说有个数据莫名其妙添加了,但是不知道是从哪里添加的,而且应用功能里面不应该添加这样的数据,为了查清楚来源,所以我就准备去binlog里面找了,但是binlog有好几个月的数,我这样一个个mysqlbinlog下去,也不是办法,所以想到准备用脚本循环来操作。1,去binlog目录复制所有的binlog到临时目录/tmp/bl/cp /home/data/mysql/binlog/mysql-bin.* /tmp/bl2,写脚本遍历[root@w...
详解MySQL的用户密码过期功能

详解MySQL的用户密码过期功能

Payment Card Industry,即支付卡行业,PCI行业表示借记卡、信用卡、预付卡、电子钱包、ATM和POS卡及相关的业务。 PCI DSS,即PCI数据安全标准(Payment Card Industry Data Security Standard)是由PCI安全标准委员会制定,旨在使国际上采用一致的数据安全措施。PCI DSS标准要求用户每隔90天必须更改他们的密码。那么MySQL数据库该怎样适应这个情况?幸运的是,在MySQL版本5.6...
<< 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 >>