Welcome 微信登录

首页 / 数据库 / MySQL

MySQL中无GROUP BY情况下直接使用HAVING语句的问题探究

MySQL中无GROUP BY情况下直接使用HAVING语句的问题探究

今天有同学给我反应,有一张表,id是主键,这样的写法可以返回一条记录:“SELECT * FROM t HAVING id=MIN(id);” 但是只是把MIN换成MAX,这样返回就是空了:“SELECT * FROM t HAVING id=MAX(id);” 这是为什么呢? 我们先来做个试验,验证这种情况。 这是表结构,初始化两条记录,然后试验:root@localhost : plx 10:25:10> show create table t2...
MySQL中删除重复数据的简单方法

MySQL中删除重复数据的简单方法

MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考。第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表create table tmp3 as select min(id) as col1...
在MySQL中实现二分查找的详细教程

在MySQL中实现二分查找的详细教程

给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7,7]。问题:给定任意自然数,对数组进行二分查找,返回数组正确的位置,给出函数实现。注:连续相同的数字,返回第一个匹配位置还是最后一个匹配位置,由函数传入参数决定。我为什么会出这道题目? 二分查找在数据库内核实现中非常重要 在数据库的内核实现中,二分查找是一个非常重要的逻辑,几乎99%以上的SQL语句(所有索引上的范围扫描/等值查询/Unique查询等),都会使...
探究MySQL优化器对索引和JOIN顺序的选择

探究MySQL优化器对索引和JOIN顺序的选择

本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序。表结构和数据准备参考本文最后部分"测试环境"。这里主要介绍MySQL优化器的主要执行流程,而不是介绍一个优化器的各个组件(这是另一个话题)。 我们知道,MySQL优化器只有两个自由度:顺序选择;单表访问方式;这里将详细剖析下面的SQL,看看MySQL优化器如何做出每一步的选择。explainselect *from employee as A,department as Bwhere A.L...
查找MySQL线程中死锁的ID的方法

查找MySQL线程中死锁的ID的方法

如果遇到死锁了,怎么解决呢?找到原始的锁ID,然后KILL掉一直持有的那个线程就可以了, 但是众多线程,可怎么找到引起死锁的线程ID呢? MySQL 发展到现在,已经非常强大了,这个问题很好解决。 直接从数据字典连查找。我们来演示下。线程A,我们用来锁定某些记录,假设这个线程一直没提交,或者忘掉提交了。 那么就一直存在,但是数据里面显示的只是SLEEP状态。mysql> set @@autocommit=0;Query OK, 0 rows affe...
使用Python的Django框架中的压缩组件Django Compressor

使用Python的Django框架中的压缩组件Django Compressor

为了加快网站的加载速度,我们通常要多js和css进行压缩处理。这些js和css的压缩工作如果都手动处理,费时费力。Django Compressor 可以实现js/css的自动压缩。Django Compressor在易用性方面做的非常好,按照 文档 做简单的设置后就可以正常工作。强烈建议大家去将文档完整的看一遍(文档很短)。使用的时候,只需要将css/js放到 compress 标签中 Django Compressor 即可自动进行处理。在debug模...
使用mysqladmin检测MySQL运行状态的教程

使用mysqladmin检测MySQL运行状态的教程

mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态、进程信息、进程杀死等。本文介绍一下如何使用mysqladmin extended-status(因为没有"歧义",所以可以使用ext代替)了解MySQL的运行状态。1. 使用-r/-i参数使用mysqladmin extended-status命令可以获得所有MySQL性能指标,即show global status的输出,不过,因为多...
用Autoconf检测MySQL软件包的教程

用Autoconf检测MySQL软件包的教程

在你的程序(或者工程)中,如果编译阶段需要检测当前环境中是否存在MySQL客户端相关的库文件时,你可以使用Autoconf来帮你完成这个工作,轻盈、优雅、无痛。阅读本文需要了解简单GNU Autoconf使用。1. 本文的目标目的:编译时,根据configure参数(如果有--with-mysql),选择性编译对应的MySQL相关的功能。实现:使用已经写好的m4脚本:ax_lib_mysql.m42. 如何利用Autoconf实现大部分你想到的事情都已经有...
从底层简析Python程序的执行过程

从底层简析Python程序的执行过程

最近我在学习 Python 的运行模型。我对 Python 的一些内部机制很是好奇,比如 Python 是怎么实现类似 YIELDVALUE、YIELDFROM 这样的操作码的;对于 递推式构造列表(List Comprehensions)、生成器表达式(generator expressions)以及其他一些有趣的 Python 特性是怎么编译的;从字节码的层面来看,当异常抛出的时候都发生了什么事情。翻阅 CPython 的代码对于解答这些问题当然是很有...
防止服务器宕机时MySQL数据丢失的几种方案

防止服务器宕机时MySQL数据丢失的几种方案

对于多数应用来说,MySQL都是作为最关键的数据存储中心的,所以,如何让MySQL提供HA服务,是我们不得不面对的一个问题。当master当机的时候,我们如何保证数据尽可能的不丢失,如何保证快速的获知master当机并进行相应的故障转移处理,都是需要我们好好思考的。这里,笔者将结合这段时间做的MySQL proxy以及toolsets相关工作,说说我们现阶段以及后续会在项目中采用的MySQL HA方案。Replication要保证MySQL数据不丢失,re...
在CentOS上安装phpMyAdmin的教程

在CentOS上安装phpMyAdmin的教程

前提在CentOS上安装phpMyAdmin,你第一步需要架设一台Web服务器(如Apache或nginx),安装好MySQL/MariaDB数据库和PHP。根据你的偏好和需求,你可以从LAMP和LEMP中选择一种安装。另一个要求是允许在你的CentOS上安装EPEL库。如果你还没设置过请猛戳这里。在CentOS6或7上安装phpMyAdmin一旦你设置了EPEL库,你就能轻松地用以下命令安装phpMyAdmin了。在CentOS 7上:$ sudo yu...
Windows Server 2003 下配置 MySQL 集群(Cluster)教程

Windows Server 2003 下配置 MySQL 集群(Cluster)教程

MySQL 群集是 MySQL 适合于分布式计算环境的高可用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器。在 MySQL 5.0 及以上的二进制版本中,以及与最新的 Linux 版本兼容的 RPM 包中提供了该存储引擎。MySQL 群集是一种技术,该技术允许在无共享的系统中部署“内存中”和“磁盘中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此...
mysql数据库索引损坏及修复经验分享

mysql数据库索引损坏及修复经验分享

mysql表索引被破坏的问题及解决下午上班,惊闻我的dedecms的网站出问题了,访问一看,果然全屏报错,检查mysql日志,错误信息为: Table ".dedecmsv4dede_archives" is marked as crashed and should be repaired 提示说cms的文章表dede_archives被标记有问题,需要修复。于是赶快恢复历史数据,上网查找原因。最终将问题解决。解决方法如下: 找到mysql的安装目录的bi...
MySQL的事件调度器使用介绍

MySQL的事件调度器使用介绍

自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,可以看作基于时间的触发器。一、开启事件调度默认是关闭的,开启可执行复制代码 代码如下:SET GLOBAL event_scheduler=1;SET GLOBAL event_scheduler=ON;或者在my.ini文件中加上event_scheduler=1或者在启动命令后加上"-event_scheduler=1"可以...
<< 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 >>