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

南京做中英文网站新出的网络游戏排行榜

南京做中英文网站,新出的网络游戏排行榜,网站建设课程中的收获,自建站模板索引一般用于在数据规模大时对查询进行优化的一种机制#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.huolong8.cn/news/288138/

相关文章:

  • 电子商务网站设计代做wordpress 安装不上
  • 网站界面的版式架构免费的企业名录
  • htm商城网站开发网站制作及排名优化
  • 免费发布信息的网站ppt做书模板下载网站有哪些
  • 网站备案需要建设好网站吗正规的网站制作哪家好
  • 最早做视频播放网站软件界面设计与色彩搭配
  • 商城网站实例html免费网站模板
  • 佛山白坭网站建设wordpress 三栏怎么弄
  • 荣成市城乡建设局网站网站第三方评价如何做
  • 做网站文案用哪个软件公司企业网络宣传设计方案
  • 库车建设工程信息网站wordpress版本回退
  • 牛什么的网站建设无代码搭建平台
  • 南宁网站外包个人做外贸的网站
  • 怎么做qq刷赞等网站品牌策划设计包括哪些内容
  • 网站建设微信运营推广专业做淘宝网站
  • 商城网站建设报价表设计制作小车的基本步骤
  • 中国建设安全监理协会网站建立网站来网上销售的英文
  • 网站ui设计要点wordpress插去地图
  • 手机移动端网站dedecms能制作几个网站
  • 网站建设如何网络销售电子商务网站建设资讯
  • 黄页推广网站下载怎么制作网站设计
  • 前端电商网站登录界面怎么做传奇网站如何建设
  • 简单手机网站开发软件手机淘宝官网首页
  • 正安县网站seo优化排名随州建设局网站
  • 做网站推广托管注意求网站建设和网页设计的电子书
  • 静态网站怎么做留言板wordpress d9
  • 黄村网站建设价格如何用手机建设网站
  • 没有公司可以做网站吗做个网站设计多少钱
  • 学校网站维护怎么做广西建设网站网址多少
  • 湖北海厦建设有限公司网站企业介绍 wordpress