mysql 不用order by实现排序_MySQL 中的ORDER BY两种排序实现方式

本文介绍了MySQL中ORDER BY子句的两种排序实现方式:利用有序索引和内存中排序。当ORDER BY条件与索引匹配时,MySQL可以直接利用索引顺序获取排序数据。通过实例分析了TableA和B的表结构,强调了有序索引在查询优化中的作用。同时,讨论了字符编码问题,提示在数据库操作中注意字符集的一致性以避免乱码问题。
摘要由CSDN通过智能技术生成

MySQL 中的ORDER BY两种排序实现方式

总的来说,在 MySQL

中的ORDER

BY有两种排序实现方式,一种是利用有序索引获取有序数据,另一种则是通过相应的排序算法,将取得的数据在内存中进行排序。

下面将通过实例分析两种排序实现方式及实现图解:

假设有Table

A 和 B 两个表结构分别如下:

1   sky@localhost : example 01:48:21> show create table A\G

2

3   *************************** 1. row

***************************

4

5   Table: A

6

7   Create Table: CREATE TABLE `A` (

8

9   `c1` int

(11) NOT NULL default '0',

10

11   `c2` char(2) default NULL,

12

13   `c3` varchar(16) default NULL,

14

15   `c4` datetime default NULL,

16

17   PRIMARY KEY

(`c1`)

18

19   ) ENGINE=MyISAM DEFAULT CHARSET=utf8

20

21   sky@localhost : example 01:48:32> show create table B\G

22

23   *************************** 1. row ***************************

24

25   Table: B

26

27   Create Table: CREATE TABLE `B` (

28

29   `c1` int(11) NOT NULL default '0',

30

31   `c2` char(2) default NULL,

32

33   `c3` varchar(16) default NULL,

34

35   PRIMARY KEY (`c1`),

36

37   KEY `B_c2_ind` (`c2`)

38

39   ) ENGINE=MyISAM DEFAULT CHARSET=utf8

1、利用有序索引进行排序,实际上就是当我们 Query 的 ORDER BY 条件和 Query 的执行计划中所利用的 Index

的索引键(或前面几个索引键)完全一致,且索引访问方式为 rang、 ref 或者 index 的时候,MySQL

可以利用索引顺序而直接取得已经排好序的�

相关文档:

首先看看 jsp文件 java程序里有没有request.setCharacterEncoding("UTF-8");

字符编码问题,数据插入库中时,java编码和数据库编码不一致,导致插入数据库为乱码,看到为????的形式

将你的jsp页面编码改为GBK,数据库对应表的编码也改为GBK

编码一致,就不会出现乱码问题� ......

以mysql-noinstall-5.1.6(win32)为例

1>把压缩文件mysql-noinstall-5.1.6-alpha-win32.zip解压到一个目录下,在环境变量中设置MYSQL_HOME,把%MYSQL_HOME%\bin 加

入到 path。

2>创建my.ini配置文件,内容如下:

[mysqld]

#设置basedir指向mysql的安装路径

basedir=...\mysql

datadir=...\mysql\data

my.ini� ......

以MySQL-server-4.0.14-0.i386.rpm为例,放在/data目录下

cd /data

rpm -ivh MySQL-server-4.0.14-0.i386.rpm

安装完成后在/usr/share/mysql目录中会有一个mysql的启动脚本mysql.server及示例配置文件等(如my-huge.cnf、my-large.cnf、my-medium.cnf)

拷贝一个示例配置� ......

配置环境:UUbuntu 8.04

1.安装vsftpd

sudo apt-get install vsftpd

2.创建guest用户

vsftpd安装的时候会自动安转一个ftp用户,在passwd中删除

sudo useradd virtual

设置virtual的密码为webftp

sudo passwd virtual

编辑virtual用户的主目录并设置shell

sudo vim /etc/passwd

我设置的是virtual:x:1001: ......

1.CREATE USER

CREATE USER user [IDENTIFIED BY [PASSWORD] 'password']

[, user [IDENTIFIED BY [PASSWORD] 'password']] ...

CREATE USER用于创建新的MySQL账户。要使用CREATE USER,您必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。对于每个账户,CREATE USER会在没有权限的mysq ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值