当前位置: 首页 > news >正文

微网站建设报价方案模板下载源码之家进不去

微网站建设报价方案模板下载,源码之家进不去,网站建设论文 php,石家庄做建站模板索引一般用于在数据规模大时对查询进行优化的一种机制#xff0c;对于一般的查询来说#xff0c;mysql会去遍历整个表#xff0c;来查询符合要求的结果#xff1b;如果借助于mysql索引#xff0c;mysql会将要索引的字段按照一定的算法进行处理#xff0c;并生成一个类似于…索引一般用于在数据规模大时对查询进行优化的一种机制对于一般的查询来说mysql会去遍历整个表来查询符合要求的结果如果借助于mysql索引mysql会将要索引的字段按照一定的算法进行处理并生成一个类似于书本目录的文件存放在相应的位置这样在查询时mysql会先去查找这些目录然后根据这些目录来快速定位所需记录的位置这样的查找不用遍历整个记录集速度自然会很快对于海量数据尤其如此。注意在向存在索引的表中插入数据时因为要维护索引信息要比不存在索引的表慢一些因此当数据量大时可以考虑在插入完数据之后再建立索引。索引分为单列索引和组合索引对于这两种索引分别介绍其索引优化问题。1、单列索引单列所有只包含一个字段一个表可以包含多个单列索引但是不要把这个和组合索引混淆。利用以下sql创建测试表复制代码 代码示例:--创建包含单列索引的index_test_single_a表create table index_test_a (id int(11) not null auto_increment,title char(255) character set utf8 not null,content text character set utf8,num int(11) default null,primary key (id),unique key indexname (title),unique key numindex (num)) engineinnodb auto_increment10000 default charsetlatin1;--创建不包含单列索引的index_test_single_b表create table index_test_b (id int(11) not null auto_increment,title char(255) character set utf8 not null,content text character set utf8,num int(11) default null,primary key (id)) engineinnodb auto_increment10000 default charsetlatin1;其中a表包含title的单列索引b表的title字段不存在索引但是两个表都有一个主键id其实主键也是索引的一种这个会在后面详细解释。写程序向这两个表中各导入10000条数据然后就可以测试了。1.1、测试查询索引字段所用的时间代码如下:复制代码 代码示例://phpinfo();ini_set(max_execution_time, 200);$con mysql_connect(localhost:3306,root,710100);if (!$con){die(could not connect: . mysql_error());}else{mysql_select_db(test,$con);$sqla select * from index_test_a where title title_4999;;$sqlb select * from index_test_b where  title title_4999;;$starttimea microtime();$result mysql_query($sqla) or   die( invalid   query:      .   mysql_error());$endtimea microtime();echo a表查询所有记录所用时间.(($endtimea-$starttimea)*1000).毫秒;echo ;$starttimeb microtime();$result mysql_query($sqlb) or   die( invalid   query:      .   mysql_error());$endtimeb microtime();echo b表查询所有记录所用时间.(($endtimeb-$starttimeb)*1000).毫秒;mysql_close($con); // by www.jbxue.com}?执行结果如下a表查询所有记录所用时间0.624毫秒b表查询所有记录所用时间44.484毫秒可以看到仅仅10000条记录的查找差别时间已经相差了几十倍因此对于经常查询的字段索引是十分必要的。相应的如果我们查询没有做索引的字段那么是没有区别的将以上的sql语句改为复制代码 代码示例:$sqla select * from index_test_a where content content_4999;;$sqlb select * from index_test_b where  content content_4999;;结果如下a表查询所有记录所用时间23.848毫秒b表查询所有记录所用时间24.155毫秒1.2、测试like查询在我们项目中如果数据量大则不推荐like查询因为其查询效率比较低但是对于索引字段来说like能命中吗可以将sql语句改成如下所示复制代码 代码示例:$sqla select * from index_test_a where title like 4999%;$sqlb select * from index_test_b where title like 4999%;测试结果a表查询所有记录所用时间0.488毫秒b表查询所有记录所用时间25.281毫秒可以看到对于模糊查询来说如果是前缀匹配则会命中索引但是如果我们将sql改为后缀匹配或者任意匹配那么二者所消耗的查询时间是一致的复制代码 代码示例:$sqla select * from index_test_a where title like %4999;$sqlb select * from index_test_b where title like %4999;$sqla select * from index_test_a where title like %4999;$sqlb select * from index_test_b where title like %4999;a表查询所有记录所用时间44.742毫秒b表查询所有记录所用时间45.752毫秒即二者都没有命中索引。1.3、测试or语句将sql改为如下所示复制代码 代码示例:$sqla select * from index_test_a where  contentcontent_4999 or titletitle_4999;;$sqlb select * from index_test_b where  contentcontent_4999 or titletitle_4999;;测试结果如下:a表查询所有记录所用时间49.904毫秒b表查询所有记录所用时间50.131毫秒继续将sql改为如下复制代码 代码示例:$sqla select * from index_test_a where  id4999  or titletitle_4999;;$sqlb select * from index_test_b where  id4999  or titletitle_4999;;测试结果如下a表查询所有记录所用时间0.86毫秒b表查询所有记录所用时间47.318毫秒从上面的结果可以看到当or中有一个字段没有索引的时候那么将不会命中索引反之如果or运算的所有字段均做了索引那么是可以命中的。1.4、测试in将sql语句继续改为如下所示复制代码 代码示例:$sqla select title from index_test_a  where title in (title_4999,title_5000);;$sqlb select title from index_test_b  where title in (title_4999,title_5000);;测试结果为a表查询所有记录所用时间0.817毫秒b表查询所有记录所用时间24.234毫秒可见对于索引字段in也是可以命中索引的。1.5、测试,between等将sql改为如下所示复制代码 代码示例:$sqla select title from index_test_a  where num 999;;$sqlb select title from index_test_b  where num 999;;测试结果如下a表查询所有记录所用时间11.469毫秒b表查询所有记录所用时间21.728毫秒可见二者差别不是很大因此是没有命中索引的。1.6、对于mysql函数索引的命中将sql改为如下所示复制代码 代码示例:$sqla select num from index_test_a  where char(num) in (999,9999);;$sqlb select num from index_test_b  where  char(num) in (999,9999);;得到的结果如下所示a表查询所有记录所用时间11.322毫秒b表查询所有记录所用时间12.429毫秒所以如果在条件中使用函数那么索引将会失效。2、组合索引组合索引包括对多个列的索引而不是多个单列索引的组合将表a中的所以改成(title,num)的组合索引进行以下测试2.1、or测试将sql语句改成如下所示复制代码 代码示例:$sqla select * from index_test_a where  num4999  or titletitle_4999;;$sqlb select * from index_test_b where  num4999 or titletitle_4999;;结果如下所示a表查询所有记录所用时间52.535毫秒b表查询所有记录所用时间53.031毫秒这时索引没有命中索引组合索引的or运算和两个单列索引的or运算是不同的前者失效而后者依然有效。2.2、and测试将sql语句改成如下所示复制代码 代码示例:$sqla select * from index_test_a where  num4999  and titletitle_4999;;$sqlb select * from index_test_b where  num4999 and titletitle_4999;;结果如下所示a表查询所有记录所用时间0.666毫秒b表查询所有记录所用时间43.042毫秒继续改为复制代码 代码示例:$sqla select * from index_test_a where  num4999 ;;$sqlb select * from index_test_b where  num4999 ;;得到的结果a表查询所有记录所用时间39.398毫秒b表查询所有记录所用时间41.057毫秒而改成如下sql复制代码 代码示例:$sqla select * from index_test_a where  titletitle_4999 ;;$sqlb select * from index_test_b where  titletitle_4999 ;;得到的结果则为a表查询所有记录所用时间0.753毫秒b表查询所有记录所用时间48.248毫秒由以上三组结果可以看出组合索引是最左前缀匹配的即条件中要包含第一个索引列才会命中索引。3、索引的优缺点利用索引可以大大加快我们的搜索但是维护索引需要额外的开销尤其是当索引较多的时候大量的数据会很容易带来索引量的膨胀因此对于频繁要用到的查询才需要做索引这样才能以最小的代价获得最大的性能提升。mysql索引优化应用实例MySql索引优化注意要点mysql索引与mysql索引优化查询Mysql索引优化方法解析深入理解MySQL索引与优化mysql索引优化实例分享mysql索引使用与优化分享:Mysql索引优化的技巧mysql性能优化之索引优化
http://www.yutouwan.com/news/294648/

相关文章:

  • 石狮市建设局网站网店美工工资
  • 网站建设学的是什么知识跨境外贸是做什么的
  • 建设银行信用卡在网站激活后如何设置密码做网站流量要钱吗
  • 哈尔滨网站制作室内装修效果图制作
  • 简单的网站怎么做的免费海报设计网站有哪些
  • 电商网站建设实训报告互联网公司花名推荐
  • 做明星粉丝网站国家建设部网站查询
  • 外贸做网站建设哪家好多用户开源系统哪个好
  • 专业网站制作设网站短信接口怎么做
  • 做苗木生意上什么网站伪造wordpress浏览量
  • 给网站做优化刷活跃要收费吗导视设计案例分析
  • 营销推广手段有什么厦门做网站优化的公司
  • 网站建设涉及的标准天津市城乡建设网站
  • 花店网站建设个人小结app仿制
  • 江苏网站建设多少钱做外贸哪些国外网站可以推广
  • html5网站开发价格东莞++网站建设
  • 如何将网址提交到一些权重比较高的网站网站设计建设 网络营销推广
  • seo sem 外贸建站 网站建设 文化墙设计抚顺网站推广
  • 目前网站开发怎么兼顾手机网站展示型推广
  • 做民族网站的配色哪些颜色适合做网站英文怎么说
  • 江西app网站建设江门网站制作建设
  • 建设网站需要考虑什么wordpress动态标签云
  • 个人博客网站开发互联网服务公司
  • 设计网站开发企业网站空间不足怎么办
  • 网站建设报价单做网站深紫色搭配什么颜色
  • 企业网站建设作品分析重庆建设教育培训网证书查询
  • 网站建设哪里最好泉州企业网站设计
  • 网站备案时间就是正式上线时间吗回收手机的网站哪家好
  • 网站建设哪家公司便宜免费创建自己的网站平台
  • 做微商有什么好的货源网站公司网站建设佛山哪家