首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > MySQL查找的方式与索引的效率
【标  题】:MySQL查找的方式与索引的效率
【关键字】:MySQL
【来  源】:http://blog.csdn.net/wqf363/archive/2006/11/12/1380407.aspx

MySQL查找的方式与索引的效率

查找的方式
全文索引查找
TYPE=MyISAM;
FULLTEXT  KEY  `name`  (column1, column2)
 
#  查找词  "不会吧"  
mysql>  SELECT  *  FROM  t3  WHERE  MATCH  (name,name2)  
       ->        AGAINST  ('不会吧'IN  BOOLEAN  MODE);  
#  查找以词  "不会吧"  开头的任意词句  
mysql>  SELECT  *  FROM  t3  WHERE  MATCH  (name,name2)  
       ->        AGAINST  ('不会吧*'  IN  BOOLEAN  MODE);  
#  查找以词  "不会吧"  开头的任意词句 并 去除词  "真的"  
mysql>  SELECT  *  FROM  t3  WHERE  MATCH  (name,name2)  
       ->        AGAINST  ('+不会吧*  -真的'  IN  BOOLEAN  MODE);  
正则表达式查找
#  查找词  "不会吧"  
mysql>  SELECT  *  FROM  t3  WHERE  name2  REGEXP  "不会吧";  
#  查找以词  "不会吧"  开头的  
mysql>  SELECT  *  FROM  t3  WHERE  name2  REGEXP  "^不会吧";  
#  查找以词  "不会吧"  结束的  
mysql>  SELECT  *  FROM  t3  WHERE  name2  REGEXP  "不会吧$";  
 
提高查找的效率索引
索引的分类:
普通索引
UNIQUE        //唯一性索引,PRIMARY KEY是这种类型
|FULLTEXT   //全文索引
|SPATIA         //
单列索引与多列索引
建索引的技巧
索引用于下面几种情形:
快速找出匹配一个WHERE子句的行。
当执行联结时,从其他表检索行。
对特定的索引列找出MAX()或MIN()值。
如果排序或分组在一个可用键的最左面前缀上进行(例如,ORDER BY key_part_1,key_part_2),排序或分组一个表。如果所有键值部分跟随DESC,键以倒序被读取。
在一些情况中,一个查询能被优化来检索值,不用咨询数据文件。如果对某些表的所有使用的列是数字型的并且构成某些键的最左面前缀,为了更快,值可以从索引树被检索出来。
 
因此:凡是由where构成的查询语句都必须建索引.
Eg:
mysql> SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;
建立索引的语法:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX @var{index_name} [@var{index_type}]
    ON @var{tbl_name} (@var{index_col_name},...)
 
@var{index_col_name}:
@var{col_name} [(@var{length})] [ASC | DESC]
Eg: 
       CREATE INDEX index_name1 ON tbl_name(col1, col2);
分析索引效率
MySQL提供了一个内建的SQL命令帮助我们完成这个任务,这就是EXPLAIN命令。EXPLAIN命令的一般语法是:EXPLAIN <SQL命令>
 
其它一个表最多可有16个索引。最大索引长度是256个字节
 
 
在Flex程序中插入Yahoo!地图:【上一篇】
一个较复杂的SQL连表查询:【下一篇】
【相关文章】
  • 在Linux高负载下mysql数据库彻底优化
  • mysql简单命令
  • MySQL字段类型说明
  • mysql使用技巧
  • MySQL 的普通和模糊查询问题[转]
  • mysql的自动备份与恢复(mysqlhotcopy)
  • Mysql 5.0.22 Cluster for RedHat AS4-U2
  • [MYSQL]觸發器應用11/10
  • [MYSQL]取表前一半資料11/9
  • [MYSQL]存儲過程應用(2)11/9
  • 【随机文章】
  • 无需安装光盘 输入法也能巧妙添加
  • 从windows到linux之旅[1]
  • 使用VirtualEarth开发地图程序
  • 在对话框中动态显示位图
  • 1Z031第六章管理控制文件
  • 学习Microsoft Content Mangement Server点滴[1]
  • apache限制下载
  • RMB大全
  • Win2000虚拟内存优化设置谈
  • IBM的JDK和JRE
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.