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

天门建站物业管理系统价格

天门建站,物业管理系统价格,wordpress不停刷y,做网站首页代码在关系数据库中#xff0c;索引是一种单独的、物理的对数据库表中的一列或多列的值进行排序的一种存储结构#xff0c; 它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录#xff0c;可以根据目录中的页码… 在关系数据库中索引是一种单独的、物理的对数据库表中的一列或多列的值进行排序的一种存储结构 它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录可以根据目录中的页码快速找到所需的内容。 索引提供只想存储在表的指定列中的数据值的指针然后根据指定的排序顺序对这些指针排序数据库使用索引以找到特定值然后根据指针找到包含该值的行这样可以使对应于表的sql语句执行的更快可快速访问数据表中的特定信息。 索引的原理 先提出几个问题 为什么要给表加上主键为什么加索引后会使查询变快为什么加索引后会使写入、修改、删除变慢什么情况下要同时在两个字段上建索引接下里一一解决 我们平时建表的时候都会为表加上主键 在某些关系数据库中 如果建表时不指定主键数据库会拒绝建表的语句执行。 事实上 一个加了主键的表并不能被称之为「表」。一个没加主键的表它的数据无序的放置在磁盘存储器上一行一行的排列的很整齐 跟我认知中的「表」很接近。如果给表上了主键那么表在磁盘上的存储结构就由整齐排列的结构转变成了树状结构也就是上面说的「平衡树」结构换句话说就是整个表就变成了一个索引。没错 再说一遍 整个表变成了一个索引也就是所谓的「聚集索引」。 这就是为什么一个表只能有一个主键 一个表只能有一个「聚集索引」因为主键的作用就是把「表」的数据格式转换成「索引平衡树」的格式放置。 主键一定是唯一性索引 假如一张表有一亿条数据 需要查找其中某一条数据按照常规逻辑 一条一条的去匹配的话 最坏的情况下需要匹配一亿次才能得到结果用大O标记法就是O(n)最坏时间复杂度这是无法接受的 而且这一亿条数据显然不能一次性读入内存供程序使用 因此 这一亿次匹配在不经缓存优化的情况下就是一亿次IO开销以现在磁盘的IO能力和CPU的运算能力 有可能需要几个月才能得出结果 。 如果把这张表转换成平衡树结构一棵非常茂盛和节点非常多的树假设这棵树有10层那么只需要10次IO开销就能查找到所需要的数据 速度以指数级别提升用大O标记法就是O(log n)n是记录总树底数是树的分叉数 结果就是树的层次数。换言之查找次数是以树的分叉数为底记录总数的对数用程序来表示就是Math.Log(100000000,10)100000000是记录数10是树的分叉数真实环境下分叉数远不止10 结果就是查找次数 这里的结果从亿降到了个位数。因此利用索引会使数据库查询有惊人的性能提升。 然而 事物都是有两面的 索引能让数据库查询数据的速度上升 而使写入数据的速度下降原因很简单的 因为平衡树这个结构必须一直维持在一个正确的状态 增删改数据都会改变平衡树各节点中的索引数据内容破坏树结构  因此在每次数据改变时 DBMS必须去重新梳理树索引的结构以确保它的正确这会带来不小的性能开销也就是为什么索引会给查询以外的操作带来副作用的原因。 以上是聚集索引的内容接下来看一下非聚集索引也就是常规索引 非聚集索引跟聚集索引一样同样是采用平衡树所谓索引的数据结构 非聚集索引和聚集索引的区别在于 通过聚集索引可以查到需要查找的数据 而通过非聚集索引可以查到记录对应的主键值 再使用主键的值通过聚集索引查找到需要的数据如下图 不管通过任何方式、索引查询表最终都是利用主键通过聚集索引来定位到数据。 MySQL索引类型   一、简介   MySQL目前主要有以下几种索引类型 1.普通索引 2.唯一索引 3.主键索引 4.组合索引 5.全文索引 二、语句 CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]   1.unique|fulltext为可选参数分别表示唯一索引、全文索引 2.index和key为同义词两者作用相同用来指定创建索引 3.col_name为需要创建索引的字段列该列必须从数据表中该定义的多个列中选择 4.index_name指定索引的名称为可选参数如果不指定默认col_name为索引值 5.length为可选参数表示索引的长度只有字符串类型的字段才能指定索引长度 6.asc或desc指定升序或降序的索引值存储 三、索引类型   1.普通索引 是最基本的索引它没有任何限制。它有以下几种创建方式 1直接创建索引 CREATE INDEX index_name ON table(column(length)) 2修改表结构的方式添加索引 ALTER TABLE table_name ADD INDEX index_name ON (column(length)) 3创建表的时候同时创建索引 CREATE TABLE table ( id int(11) NOT NULL AUTO_INCREMENT , title char(255) CHARACTER NOT NULL , content text CHARACTER NULL , time int(10) NULL DEFAULT NULL , PRIMARY KEY (id), INDEX index_name (title(length)) ) 4删除索引 DROP INDEX index_name ON table   2.唯一索引 与前面的普通索引类似不同的就是索引列的值必须唯一但允许有空值。如果是组合索引则列值的组合必须唯一。它有以下几种创建方式 1创建唯一索引 CREATE UNIQUE INDEX indexName ON table(column(length)) 2修改表结构 ALTER TABLE table_name ADD UNIQUE indexName ON (column(length)) 3创建表的时候直接指定 CREATE TABLE table ( id int(11) NOT NULL AUTO_INCREMENT , title char(255) CHARACTER NOT NULL , content text CHARACTER NULL , time int(10) NULL DEFAULT NULL , UNIQUE indexName (title(length)) );   3.主键索引 是一种特殊的唯一索引一个表只能有一个主键不允许有空值。一般是在建表的时候同时创建主键索引 CREATE TABLE table ( id int(11) NOT NULL AUTO_INCREMENT , title char(255) NOT NULL , PRIMARY KEY (id) );   4.组合索引 指多个字段上创建的索引只有在查询条件中使用了创建索引时的第一个字段索引才会被使用。使用组合索引时遵循最左前缀集合 ALTER TABLE table ADD INDEX name_city_age (name,city,age);   5.全文索引 主要用来查找文本中的关键字而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同它更像是一个搜索引擎而不是简单的where语句的参数匹配。fulltext索引配合match against操作使用而不是一般的where语句加like。它可以在create tablealter table create index使用不过目前只有char、varchartext 列上可以创建全文索引。值得一提的是在数据量较大时候现将数据放入一个没有全局索引的表中然后再用CREATE index创建fulltext索引要比先为一张表建立fulltext然后再将数据写入的速度快很多。 1创建表的适合添加全文索引 CREATE TABLE table ( id int(11) NOT NULL AUTO_INCREMENT , title char(255) CHARACTER NOT NULL , content text CHARACTER NULL , time int(10) NULL DEFAULT NULL , PRIMARY KEY (id), FULLTEXT (content) ); 2修改表结构添加全文索引 ALTER TABLE article ADD FULLTEXT index_content(content) 3直接创建索引 CREATE FULLTEXT INDEX index_content ON article(content) 四、缺点   1.虽然索引大大提高了查询速度同时却会降低更新表的速度如对表进行insert、update和delete。因为更新表时不仅要保存数据还要保存一下索引文件。 2.建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重但如果你在一个大表上创建了多种组合索引索引文件的会增长很快。 索引只是提高效率的一个因素如果有大数据量的表就需要花时间研究建立最优秀的索引或优化查询语句。 五、注意事项   使用索引时有以下一些技巧和注意事项 1.索引不会包含有null值的列 只要列中包含有null值都将不会被包含在索引中复合索引中只要有一列含有null值那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为null。 2.使用短索引 对串列进行索引如果可能应该指定一个前缀长度。例如如果有一个char(255)的列如果在前10个或20个字符内多数值是惟一的那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。 3.索引列排序 查询只使用一个索引因此如果where子句中已经使用了索引的话那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作尽量不要包含多个列的排序如果需要最好给这些列创建复合索引。 4.like语句操作 一般情况下不推荐使用like操作如果非使用不可如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。 5.不要在列上进行运算 这将导致索引失效而进行全表扫描例如 SELECT * FROM table_name WHERE YEAR(column_name)2017; 6.不使用not in和操作 转载于:https://www.cnblogs.com/little-orangeaaa/p/9707850.html
http://www.pierceye.com/news/853235/

相关文章:

  • 营销型网站有哪些特点建设官方网站的费用账务处理
  • 区域网站设计WordPress无法发布
  • html网站开发主要涉及哪些技术百度域名的ip
  • 织梦网站数据下载wordpress如何播放百度云视频
  • 建站的费用服务器搭建网站环境
  • 查看公司信息的网站旅游网站效果图
  • 娄底网站制作重庆专题片制作
  • 网站建设佰金手指科杰十七织梦淘客网站
  • 财务系统seo西安
  • 如何做好网站建设的关键重点网站地图那么建设
  • 打开山东城市建设职业学院网站自己网站做优化的有权利卖么
  • 境外电商网站建设sem推广优化
  • 五站合一自建网站制作网站用什么软件有哪些
  • 查法人信息的网站开发公司一季度汇报
  • 国外的购物网站有哪些安徽省住房和城乡建设厅官方网站
  • 网站策划需要什么能力网页游戏平台软件
  • phpmysql网站开发网络结构
  • 微官网和移动网站区别论坛网站建设多少钱
  • 怎么做公司网站优化凡科h5登录入口
  • 做电影网站如何推广方案房产网络平台
  • 站长工具 seo查询python爬数据做网站
  • 网站 底部医院网站建设的要求
  • asp网站静态化seo关键词排名优化软件怎么选
  • wordpress apache版本北京seo招聘
  • 南京玄武网站建设信息服务公司的经营范围有哪些
  • 旅游网站建设与翻译wordpress 显示作者
  • 网站建设与维护报告总结国家外汇管理局网站怎么做报告
  • 南沙区网站建设网站开发人员薪酬
  • 设计外贸英文网站简述网站开发的流程
  • 电商网站设计是干什么的如何建设cpa影视网站