MYSQL使用索引导致查询变慢的例子
使用表Ta_IP 涉及字段
id int(11) 流水ID,
ip_value1 bigint(11) 数字型IP地址最小值,
ip_value12 bigint(11) 数字型IP地址最大值,
address varchar(100) IP归属地
查询语句
以下语句功能为:IP转换为数字后在ta_ip 中查找对应的地址
select address from ta_ip where ip_value1 <= 3232235885 and ip_value2 >=3232235885 limit 1
未建立索引索引
0.125秒
select address from ta_ip where ip_value1 <= 3232235885 and ip_value2 >=3232235885
0.032秒
select address from ta_ip where ip_value1 <= 3232235885 and ip_value2 >=3232235885 limit 1
建立索引后 (ip_value1,ip_value2,ip_value1+ip_value2,IP_ID)
0.125 秒(未使用到索引)
select address from ta_ip where ip_value1 <= 3232235885 and ip_value2 >=3232235885
0.328秒 (使用到ip_value1)
select address from ta_ip where ip_value1 <= 3232235885 and ip_value2 >=3232235885 limit 1
0.032秒(强制不使用索引)
select address from ta_ip Ignore index(ip_value1,ip_value2,ip_value1_2) where ip_value1 <= 3232235885 and ip_value2 >=3232235885 limit 1
不使用索引(0.032秒)比使用到索引快10倍(0.328秒) 因此更新速度从每分钟1200条下降为 每分钟150条
查询1000条 未使用索引 57.65625秒 使用索引 558.65625 秒
相关文档:
Linux + JDK + Tomcat + MySQL + JDBC 安装手记
一、Red Hat Linux
1.分区
| swap & ......
编码是个很基础的问题,也是大家很容易忽略的问题,写代码之前多多考虑,以后会少很多麻烦。
PHP发展了不少,现在pear用起来很方便,其中就有相关的class来读取Excel文件里面的内容,如果不想使用pear的话,可以考虑使用excel_class.php,google一下,可以找到这个class的source code下载,也能找到基本的example c ......
解决方法一:(最重要的一种方法)
你看下my.ini,有无
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
然后建立表时,也要用(比如)
DROP TABLE IF EXISTS `Company`;
CREATE &nb ......
1、MySQL常用命令
create database name; 创建数据库
use databasename; 选择数据库
drop database name 直接删除数据库,不提醒
show tables; 显示表
describe tablename; 表的详细描述
select 中加上distinct去除重复字段
mysqladmin drop databasename 删除数据库前,有提示。
显示当前mysql版本和当前日期
s ......
一般建模可能都会用到:powerdesigner
但是,在建表的时候,我一直没有找到:
DEFAULT CHARACTER SET
COLLATE
两个选项。因此,想了个方法,点击:工具栏-》database-》edit current DBMS
然后,选中:MYSQL50::Script\Objects\Table\Options
在options末尾添加:
ENGINE = %s : list = BDB | HEAP | ISAM | InnoDB ......