MySQL高效运行必备:简单的知识教你高效运用索引
在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL
);
我们随机向里面插入了10000条记录,其中有一条:5555, admin。
在查找username="admin"的记录 SELECT * from mytable WHERE username='admin';时,如果在username上已经建立了索引,MySQL无须任何扫描,即准确可找到该记录。相反,MySQL会扫描所有记录,即要查询10000条记录。
索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。
索引的类型包括:
(1)普通索引
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
● 创建索引
CREATE INDEX indexName ON mytable(username(length));
如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length,下同。
● 修改表结构
ALTER mytable ADD INDEX [indexName] ON (username(length))
● 创建表的时候直接指定
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
);
删除索引的语法:
DROP INDEX [indexName] ON mytable;
(2)唯一索引
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
● 创建索引
CREATE UNIQUE INDEX indexName ON mytable(username(length))
● 修改表结构
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
● 创建表的时候直接指定
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
UNIQUE [indexName] (username(length))
);
(3)主键索引
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
PRIMARY KEY(ID)
);
当然也可以用 ALTER 命令。记住:一个表只能有一个主键。
(4)组合索引
为了形象地对比单列索引和组合索引,为表添加多个字段:
CREATE TABLE mytable(
ID IN
相关文档:
假设你是一个Access开发人员,而你想移植一个Access后台到一个本地的MySQL 服务器用于开发和测试。你将维护你自己的解决方案并乐于使用Community Server
第一步——安装MySQL
到http://dev.mysql.com/downloads/ 下载这个服务器、MySQL GUI工具和MySQL ODBC驱动。你可以选择的服务器有:5.0, 5.1或6.0 ......
初次安装方法:
1、去官方下载MYSQL 5.0。
2、修改防火墙的设置,在允许例外里添加新的端口,名字为mysql,开放的端口为TCP 3306。
这个大家应该都会,在Vista控制面板的Windows防火墙里面,点击“更改设置”-“例外”,点击“添加端口”就可以。
......
首先,打开MySQL Query Browser,在当前Test数据库下,新建一个student表,有如下属性:
create table student (name varchar(10),id int(2),sex varchar(10));
程序见下:
package com.JDBC;
import java.sql.*;
public class JDBCTest {
public static void main(String[] args) {String driver = "com.mys ......