`

在Mysql5下使用Hash分区时排序的怪异现象

SQL 
阅读更多

有一数据表,ID字段,主键和自增量属性,同时做为Hash分区字段,使用InnoDB引擎。

SQL:SELECT * FROM tab WHERE userID = ? ORDER BY?ID DESC

但返回的记录列表如下:

ID,title
124322,a111
124311,a222
5321,a333
15324,a444
15321,a55
1234,a66

由此可以看到返回的记录集并没有真正以ID排序,而之前没有使用分区,并使用MYISAM引擎的时候并没有这个情况,

由于使用主键字段作为分区字段,同时Mysql5在分区的时候并没有全局索引,只有每个分区单独的索引。所以估计这个SQL只是返回各自分区排序后的结果,然后做union就直接返回了。

最后改为:

SQL:SELECT * FROM tab WHERE userID = ? ORDER BY?ID + 0?DESC


[点击查看详细]
分享到:
评论

相关推荐

    oracle分区表之hash分区表的使用及扩展

    Hash分区是Oracle实现表分区的三种基本分区方式之一。对于那些无法有效划分分区范围的大表,或者出于某些特殊考虑的设计,需要使用Hash分区,下面介绍使用方法

    mysql_hash.exe/使用hash登陆mysql

    在获取到mysql用户的hash后, 可用hash直接登陆mysql进行操作 比如我们注入出数据库的hash,但是没办法拿到webshell 我们可以使用mysql_hash,用hash登陆并控制数据库 使用方法: mysql_hash.exe -u root -p Enter ...

    mysql表分区

    mysql表分区策略,包含range分区、list分区、hash分区等方法介绍及详解

    HASH分区表增加新的分区的一点研究.doc

    HASH分区表增加新的分区的一点研究 HASH分区的ADD PARTITION和RANGE分区、LIST分区的SPLIT PARTITION很类似

    创建mysql表分区的方法

    表分区是最近才知道的哦 ,以前自己做都是分表来实现上亿级别的数据了,下面我来给大家介绍一下mysql表分区创建与使用吧,希望对各位同学会有所帮助。表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的...

    geohash算法mysql版代码

    网上有很多geohash算法的实现,都是基于java或者php代码实现的,没有sql实现的版本,这里使用mysql简单实现了这个算法

    Hash在线解密_Hash在线解密_Hash在线解密平台最新版_hash解密_hash.txt_mysql5在线解密_

    Hash在线解密平台最新版php实现纯txt存储哈希跟明文对应表查询

    详细介绍Mysql5.1分区技术

    详细介绍mysql5.1 分区技术,通过对list range hash key四种分区技术的举例阐述Mysql分区,18.2.1. RANGE分区 18.2.2. LIST分区 18.2.3. HASH分区 18.2.4. KEY分区 18.2.5. 子分区 18.2.6. MySQL分区处理NULL值的...

    mysql使用教程之分区表的使用方法(删除分区表)

    MySQL使用分区表的好处: 1,可以把一些归类的数据放在一个分区中,可以减少服务器检查数据的数量加快查询。2,方便维护,通过删除分区来删除老的数据。3,分区数据可以被分布到不同的物理位置,可以做分布式有效...

    MySQL分区表:万字详解与实践指南

    在处理大型MySQL数据库时,分区表是一种强大的功能,可以提高查询性能、管理大量数据以及优化备份和恢复过程。本文将深入探讨MySQL分区表的概念、类型、优势,并通过实际示例展示如何在不同的场景下应用分区表。 ...

    mysql通过Navicat分区实操讲解

    mysql分区有利于管理非常大的表,mysql分区一共有四种类型,range分区,list分区, hash分区,key分区,我们通过Navicat 可视化工具来分区 1、打开Navicat 找到指定的数据库,设计表 2、打开设计表选择选项,下面有...

    mysql分区资源整理

    分区有利于管理非常大的表,它采用分而治之的逻辑,分区引入了分区键的概念,分区键用于根据某个区间值(或者范围值)、特定值列表或者hash函数值执行数据的聚集,让数据根据规则分布在不同的分区中,让一个大对象碧昂...

    Oracle10个分区和Mysql分区区别详解

    Oracle10g分区常用的是:range(范围分区)、list(列表分区)、hash(哈希分区)、range-hash(范围—哈希分区)、range-list(列表—复合分区)。 Range分区:Range分区是应用范围比较广的表分区方式,它是以列的...

    mysql_password_hash:MySQL密码和哈希生成器

    这在许多情况下很有用,包括使用Puppet的Puppetlabs-MySQL模块,该模块在创建GRANT时要求密码哈希例如: GRANT ALL ON *.* to user@% identified by PASSWORD 'PASS-HASH';该程序可以生成任意长度的随机密码并提供...

    MySQL分区表的基本入门教程

    在最近的项目中,我们需要保存大量的数据,而且这些数据是有有效期的,为了提供查询效率以及快速删除过期数据,我们选择了MySQL的分区机制。把数据按照时间进行分区。 分区类型 Range分区:最为常用,基于属于一个...

    MD5校验工具Hash.exe使用说明.pdf

    MD5校验工具Hash.exe使用说明.pdf

    MySQL 5.1官方简体中文参考手册

    3.5. 在批处理模式下使用mysql 3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. ...

    c语言的md5_hash代替C#的ComputeHash

    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); string str = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(str))); C#的md5 ComputeHash方法,C语言实现

Global site tag (gtag.js) - Google Analytics