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

网站建设 策划方案书郑州网站建设快速排名熊掌

网站建设 策划方案书,郑州网站建设快速排名熊掌,今天特大军事新闻,宣传推广策略有哪些目录 1、索引概述 2、索引结构 2.1 BTree 2.2 BTree 2.3 Hash 3、索引分类 4、索引语法 4.1 创建索引 4.2 查看索引 4.3 删除索引 5、SQL性能分析 5.1 SQL执行频率 5.2 慢查询日志 5.3 profile详情 5.4 explain执行计划 6、索引使用 6.1 验证索引效率 6.2 最左…目录 1、索引概述 2、索引结构 2.1 BTree 2.2 BTree 2.3 Hash 3、索引分类 4、索引语法 4.1 创建索引 4.2 查看索引 4.3 删除索引 5、SQL性能分析 5.1 SQL执行频率 5.2 慢查询日志 5.3 profile详情 5.4 explain执行计划 6、索引使用 6.1 验证索引效率 6.2 最左前缀法则 7、索引设计原则 1、索引概述 介绍索引(index)是帮助MySQ高效获取数据的数据结构(有序)。在数据之外数据库系统还维护着满足特定查找算法的数据结构这些数据结构以某种方式引用(指向)数据这样就可以在这些数据结构上实现高级查找算法这种数据结构就是索引 优势 提高数据检索的效率降低数据库的IO成本通过索引列对数据进行排序降低数据排序的成本降低CPN的消耗。 劣势 索引列也是要占用空间的。索引大大提高了查询效率同时却也降低更新表的速度如对表进行INSERT、UPDATE、DELETE时效率降低。 2、索引结构 MySQL的索引是在存储引擎层实现的不同的存储引警有不同的结构主要包含以下几种: 我们平常所说的索引如果没有特别指明都是指B树结构组织的索引。 2.1 BTree 介绍多路平衡查找树 以一颗最大度数(max-degree)为5(5阶)的BTree为例(每个节点最多存储4个key5个指针): 知识小贴士: 树的度数指的是一个节点的子节点个数。                                                              2.2 BTree 以一颗最大度数(max-degree)为4(4阶)的BTree为例: 相对于BTree区别: 所有的数据都会出现在叶子节点叶子节点形成一个单向链表 MySQL索引数据结构对经典的BTree进行了优化。在原BTree的基础上增加一个指向相邻叶子节点的链表指针就形成了带有顺序指针的BTree提高区间访问的性能。 2.3 Hash 哈希索引就是采用一定的hash算法将键值换算成新的hash值映射到对应的槽位上然后存储在hash表中。 如果两个(或多个)键值映射到一个相同的槽位上他们就产生了hash冲突(也称为hash碰撞)可以通过链表来解决。 Hash索引特点 Hash索引只能用于对等比较(in)不支持范围查询(between…)无法利用索引完成排序操作查询效率高通常只需要一次检索就可以了效率通常要高于BTree索引 存储引擎支持 在MySQL中支持hash索引的是Memory引擎而InnoD8中具有自适应hash功能hash索引是存储引擎根据BTree索引在指定条件下自动构建的。 为什么InnoDB存储引擎选择使用B Tree索引结构? 相对于二叉树层级更少搜索效率高对于BTree无论是叶子节点还是非叶子节点都会保存数据这样导致一页中存储的键值减少指针跟着减少要同样保存大量数据只能增加树的高度导致性能降低相对Hash索引BTree支持范围匹配及排序操作 3、索引分类 在InnoDB存储引擎中根据索引的存储形式又可以分为以下两种 聚集索引选取规则: 如果存在主键主键索引就是聚集索引。如果不存在主键将使用第一个唯一(UNIQUE)索引作为聚集索引。如果表没有主键或没有合适的唯一索引则InnoDB会自动生成一个rowid作为隐藏的聚集索引。 4、索引语法 4.1 创建索引 CREATE [UNIQUE|FULLTEXT] INDEX index_name ON table_name (index_col_name,...)  4.2 查看索引 SHOW INDEX FROM table_name; 4.3 删除索引 DROP INDEX index_name ON table_name; 案例 表数据 需求 1、name字段为姓名字段该字段的值可能会重复为该字段创建索引。 CREATE INDEX idx_user_name ON tb_user(name)2、phone手机号字段的值是非空且唯一的为该字段创建唯一索引。 CREATE UNIQUE INDEX idx_user_phone ON tb_user(phone)3、为profession、age、status创建联合索引。 CREATE INDEX idx_user_pro_age_sta ON tb_user(profession,age,status) 4、为email建立合适的索引来提升查询效率 CREATE INDEX idx_user_email ON tb_user(email) 5、SQL性能分析 5.1 SQL执行频率 MySQL 客户端连接成功后通过 show[sessionlglobal status 命令可以提供服务器状态信息。通过如下指令可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次: SHOW GLOBAL STATUS LIKE Com____; 5.2 慢查询日志 慢查询日志记录了所有执行时间超过指定参数(long_query_time单位:秒默认10秒)的所有SQL语句的日志。 MySQL的慢查询日志默认没有开启需要在MySQL的配置文件(/etc/my.cnf)中配置如下信息: 查看慢查询日志是否开启 SHOW VARIABLES LIKE slow_query_log 开启慢查询日志 SET GLOBAL slow_query_logON 关闭慢查询日志 SET GLOBAL slow_query_logOFF 5.3 profile详情 show profiles 能够在做SQL优化时帮助我们了解时间都耗费到哪里去了。通过have_profiling参数能够看到当前MySQL是否支持 profile操作: SELECT have_profiling默认profiling是关闭的可以通过set语句在session/global级别开启profiling: SET PROFILING1 执行一系列的业务SQL的操作然后通过如下指令查看指令的执行耗时: -- 查看每一条SOL的耗时基本情况 show profiles;-- 查看指定query id的SQL语句各个阶段的耗时情况 show profile for query query id;-- 查看指定query id的SQL语句CPU的使用情况 show profile cpu for query query id; 5.4 explain执行计划 EXPLAIN 或者 DESC命令获取 MVSOL如何执行 SELECT语句的信息包括在 SELECT 语句执行过程中表如何连接和连接的顺序。 -- 直接在select语句之前加上关键字 explain/desc EXPLAIN SELECT字段列表 FROM 表名 WHERE 条件; EXPLAIN 执行计划各字段含义: 1、id select查询的序列号表示查询中执行select子句或者是操作表的顺序(id相同执行顺序从上到下;id不同值越大越先执行)。 2、select_type 表示 SELECT的类型常见的取值有SIMPLE(简单表即不使用表连接或者子查询)、PRIMARY(主查询即外层的查询)、UNION(UNION 中的第二个或者后面的查询语句)、SUBOUERY(SELECT/WHERE之后包含了子查询)等 3、type 表示连接类型性能由好到差的连接类型为NULL、system、const、eg ref、ref、range、index、all 4、possible_key 显示可能应用在这张表上的索引一个或多个 5、Key 实际使用的索引如果为NULL则没有使用索引 6、Key_len 表示索引中使用的字节数该值为索引字段最大可能长度并非实际使用长度在不损失精确性的前提下长度越短越好 7、rows MySQL认为必须要执行查询的行数在innodb引擎的表中是一个估计值可能并不总是准确的 8、filtered 表示返回结果的行数占需读取行数的百分比filtered 的值越大越好 6、索引使用 6.1 验证索引效率 在未建立索引之前执行如下SQL语句查看SQL的耗时。 SELECT * FROM tb_sku WHERE sn100000003145001 针对字段创建索引 create index idx_sku_sn on tb_sku(sn) 然后再次执行相同的SQL语句再次查看SQL的耗时。 SELECT * FROM tb_sku WHERE sn100000003145001 6.2 最左前缀法则 如果索引了多列(联合索引)要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始并且不跳过索引中的列。 如果跳跃某一列索引将部分失效(后面的字段索引失效) explain select * from tb_user where profession 软件工程 and age 31 and status 0explain select * from tb_user where profession 软件工程 and age 31explain select * from tb_user where profession软件工程explain select * from tb_user where age 31 and status 0explain select * from tb_user where status 0 7、索引设计原则
http://www.hkea.cn/news/14376835/

相关文章:

  • 个人网站备案如何取名称做网站展示软件
  • 刚开始做汽配网站要进货德国 网站 后缀
  • 网站企业优化商城网站不易优化
  • 南京个人做网站肇庆seo
  • 蓝色网站特点建筑工程网名大全
  • 上海网站策划网站建设中啥意思
  • 电子商务网站建设与规划外贸客户开发系统
  • 做企业网站通常哪找素材wordpress网址导航模板
  • 关于校园网站建设的建议甘肃省城乡住房建设厅网站首页
  • 怎么建网站 手机版网站正在升级建设中源码
  • 网站建设发言材料东莞企业公司网站建设
  • 郑州品牌网站建设费用如何设计自己的网站
  • 代加工网站有哪些多商家网站建设
  • 附近的装修公司地点网站建设优化服务资讯
  • 自建网站平台网站建设验收使用情况
  • WordPress适合建大型网站吗国内购物平台
  • 建设校园网站意义免费培训seo网站
  • 黄村网站建设价格wordpress 更换logo
  • 用html5做的网站wordpress菜单对齐修改
  • 上海建设工程信息网站沈阳网站设计公司
  • 个人信息网站广州网站建设系统
  • 网站建设如何商谈wordpress自动采集插件怎么用
  • 网上商城开发网站建设婚庆网站制作公司
  • 民宿网站怎么做wordpress添加相册
  • 网络设计方案书主要包括哪些内容seo 知乎
  • 建设用地规划查询网站淘金网站建设推广
  • 四川微信网站建设wordpress级简主题
  • 网站建设广告素材辽宁建设工程信息网公司评分
  • 怎么做一个赚钱得网站wordpress百度云插件
  • 哪些是实名制网站网页设计图片与文字对齐左对齐