100W数据,测试索引
两张表,结构相同,数据内容相同。唯一不同的就是是否包含索引。tf_user_index表中包含索引。
这100w数据,我造了近一天时间。
mysql> select count(*) from tf_user_index where score = 30;
+----------+
| count(*) |
+----------+
| 126306 |
+----------+
1 row in set (0.03 sec)
mysql> select count(*) from tf_user where score = 30;
+----------+
| count(*) |
+----------+
| 126306 |
+----------+
1 row in set (1.94 sec)
score字段,加了索引。
mysql> select count(*) from tf_user_index where score > 80;
+----------+
| count(*) |
+----------+
| 2525607 |
+----------+
1 row in set (0.49 sec)
mysql> select count(*) from tf_user where score > 80;
+----------+
| count(*) |
+----------+
| 2525607 |
+----------+
1 row in set (2.02 sec)
很明显,加了索引的查询要快很多。
sql会根据条件去索引中查找,然后去表中查找。如果在索引中匹配的越多,那么查找的时间就越长,索引的意义就越小。
看下面的例子,
mysql> select count(*) from tf_user_index where score > 0;
+----------+
| count(*) |
+----------+
| 10000000 |
+----------+
1 row in set (1.91 sec)
mysql> select count(*) from tf_user where score > 0;
+----------+
| count(*) |
+----------+
| 10000000 |
+----------+
1 row in set (2.03 sec)
大于0,基本上匹配了所有的数据,索引的意义就不大了。
大数据实验,才能更好的看出效果。让微观世界宏观化。
下面看看,sex性别这个字段。
mysql> select count(*) from tf_user where sex = 1;
+----------+
| count(*) |
+----------+
| 5001500 |
+----------+
1 row in set (2.29 sec)
mysql> select count(*) from tf_user_index where sex = 1;
+----------+
| count(*) |
+----------+
| 5001500 |
+----------+
1 row in set (1.04 sec)
加索引也还是有点提升速度的。但是意义不是很大,因为每次查询,基本上都是要扫描一半的数据表。总体来说,还是有一定的提升的。效果不是那么明显,比如上面的score快起来,只有几毫秒的查询时间。
100W数据,测试索引的更多相关文章
- 关于SQL查询效率,100w数据,查询只要1秒
1.关于SQL查询效率,100w数据,查询只要1秒,与您分享:机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试,比 ...
- 如何快速的插入 100W数据到数据库,使用PreparedStatement 最快实现!
有时候,我们使用数据库的时候,如何快速的添加测试数据到数据库中,做测试呢,添加100W 数据,如果使用工具的话可能很慢,这里我推荐大家使用 PreparedStatement 预编译 去进行操作:单线 ...
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
Solr学习笔记之3.Solr导入SQLServer数据建立索引 一.下载MSSQLServer的JDBC驱动 下载:Microsoft JDBC Driver 4.0 for SQL Server ...
- [搜索]ElasticSearch Java Api(一) -添加数据创建索引
转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...
- 实战:mysql统计指定架构的全部表的数据和索引大小情况-v2
PS:第一个版本号里未做输入的schema_name和table_name推断,改动了一下!再次share! #统计指定架构的全部表的数据和索引大小情况 #tablesize.sh #!/bin/sh ...
- Mysql 查看表数据以及索引大小
如果想查看 Mysql 数据库的总的数据量或者某个表的数据或者索引大小,可以使用系统库 information_schema 来查询,这个系统库中有一个 TABLES 表,这个表是用来记录数据库中表的 ...
- (转)淘淘商城系列——导入商品数据到索引库——Service层
http://blog.csdn.net/yerenyuan_pku/article/details/72894187 通过上文的学习,我相信大家已经学会了如何使用Solrj来操作索引库.本文我们将把 ...
- MySQL数据和索引占用空间查询
MySQL数据和索引占用空间查询 查询所有数据库占用磁盘空间大小的SQL语句 SELECT table_schema, -- 数据库名称 concat( TRUNCATE ( sum( data_le ...
- Mysql高级操作学习笔记:索引结构、树的区别、索引优缺点、创建索引原则(我们对哪种数据创建索引)、索引分类、Sql性能分析、索引使用、索引失效、索引设计原则
Mysql高级操作 索引概述: 索引是高效获取数据的数据结构 索引结构: B+Tree() Hash(不支持范围查询,精准匹配效率极高) 树的区别: 二叉树:可能产生不平衡,顺序数据可能会出现链表结构 ...
随机推荐
- 【node】---multer模块实现图片上传---【巷子】
1.安装muterl第三方模块 cnpm install multer --save 2.使用 multer在解析完成后,会向request对象中添加一个body对象和一个file或者files对象( ...
- docx4j基本操作
最近需要用docx4j来对docx进行一些操作,用到的技术是docx4j,这个技术在国内其实用的不是很多,看了一些博主的文章,有些感悟,做了一些总结,如果有疑问或错误之处欢迎交流. 创建包: Word ...
- Page Control
- redis知识总汇
redis基础 django-redis redis数据操作详解 redis持久化
- Redhat 7改动默认执行级别方法 --RHEL7使用systemd创建符号链接指向默认执行级别
今天装了下正式版的RHEL7,发现熟悉的inittab中没有了改动默认执行级别,打开inittab例如以下 [root@localhost init.d]# vi /etc/inittab # ini ...
- 基于Python的交互式可视化工具 [转]
前几天发现一个可视化工具Dash,当看到它的交互式效果后突然就觉得眼前一亮.早就想写出来分享给大家,今天利用睡前一点时间发出来,希望能给有需要的朋友带来一点帮助或者多一个参考. Dash介绍 在Pyt ...
- PHP生成唯一RequestID类
https://blog.csdn.net/fdipzone/article/details/79939431 本文介绍PHP生成唯一RequestID类,使用session_create_id()与 ...
- kernel内核配置说明
内核过程中的配置这一步做详细的说明吧,总结一下,多数内容源于网上的多篇文章. 首先,配置时可能出现的选项,对其选择先来个说明吧. Typically, your choices for each op ...
- HDU5086:Revenge of Segment Tree(规律题)
http://acm.hdu.edu.cn/showproblem.php?pid=5086 #include <iostream> #include <stdio.h> #i ...
- (2)R中的数据类型和数据结构
R中的数据结构主要面向<线性代数>中的一些概念,如向量.矩阵等.值得注意的是,R中其实没有简单数据(数值型.逻辑型.字符型等),对于简单类型会自动看做长度为1的向量.比如: > b= ...