索引

mysql优化Analyze Table

核能气质少年 提交于 2020-02-29 17:13:25
http://blog.csdn.net/alongken2005/article/details/6394016 Analyze Table MySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了。 我们可以使用SHOW INDEX语句来查看索引的散列程度: SHOW INDEX FROM PLAYERS; TABLE KEY_NAME COLUMN_NAME CARDINALITY ------- -------- ----------- ----------- PLAYERS PRIMARY PLAYERNO 14 因为此时PLAYER表中不同的PLAYERNO数量远远多于14,索引基本失效。 下面我们通过Analyze Table语句来修复索引: ANALYZE TABLE PLAYERS; SHOW INDEX FROM PLAYERS; 结果是: TABLE KEY_NAME COLUMN_NAME CARDINALITY ------- -------- ----------- ----------- PLAYERS PRIMARY PLAYERNO

SQL SERVER性能优化

北战南征 提交于 2020-02-29 16:47:30
1、 用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻 网络 负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;   算法的结构尽量简单;在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,COL2 FROM T1;在可能的情况下尽量限制尽量结果集行数如:SELECT TOP 300 COL1,COL2,COL3 FROM T1,因为某些情况下用户是不需要那么多的数据的。不要在应用中使用数据库游标,游标是非常有用的工具,但比使用常规的、面向集的SQL语句需要更大的开销;按照特定顺序提取数据的查找。   2、 避免使用不兼容的数据类型。例如float和int、char和varchar、binary和varbinary是不兼容的。数据类型的不兼容可能使优化器无法执行一些本来可以进行的优化操作。例如: SELECT name FROM employee WHERE salary > 60000   在这条语句中,如salary字段是money型的,则优化器很难对其进行优化,因为60000是个整型数。我们应当在编程时将整型转化成为钱币型,而不要等到运行时转化。   3、

为SQL视图建立索引[引用]

孤人 提交于 2020-02-29 16:04:08
为SQL视图建立索引 [ 引用 ] CREATE INDEX 语句的要求 在视图上创建的第一个索引必须是唯一聚集索引。在创建唯一聚集索引后,可创建其它非聚集索引。视图上的索引命名规则与表上的索引命名规则相同。唯一区别是表名由视图名替换。有关更多信息,请参见 CREATE INDEX 。 除了一般的 CREATE INDEX 要求外, CREATE INDEX 语句还必须满足下列要求: 执行 CREATE INDEX 语句的用户必须是视图的所有者。 当执行 CREATE INDEX 语句时,下列 SET 选项必须设置为 ON : ANSI_NULLS ANSI_PADDING ANSI_WARNINGS ARITHABORT CONCAT_NULL_YIELDS_NULL QUOTED_IDENTIFIERS 必须将选项 NUMERIC_ROUNDABORT 选项设置为 OFF 。 视图不能包含 text 、 ntext 或 image 列,即使在 CREATE INDEX 语句中没有引用它们。 如果视图定义中的 SELECT 语句指定了一个 GROUP BY 子句,则唯一聚集索引的键只能引用在 GROUP BY 子句中指定的列。 -- --------------------------------------------------------------------------

MySQL 性能调优(2)

点点圈 提交于 2020-02-29 15:40:26
MySQL数据库技术的方方面面也是很多,这里只涉及必备的性能调优,推崇从下向上的性能调优,主要包括运行环境,配置参数,SQL性能,和系统架构设计调优。 运行环境调优 这里是Linux的天下,MySQL 运行环境的调优往往和Linux的内核调优一并完成。当然了,对云服务RDS 也有一定的参考作用。 调整Linux默认的IO调度算法 IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实生活中的电梯模型,所以IO调度器也被叫做电梯 (elevator),而相应的算法也就被叫做电梯算法.而Linux中IO调度的电梯算法有好几种,一个叫做as(Anticipatory),一个叫做 cfq(Complete Fairness Queueing),一个叫做deadline,还有一个叫做noop(No Operation). IO对数据库的影响较大,linux默认的IO调度算法为cfq,需要修改为deadline,如果是SSD或者PCIe-SSD设备,需要修改为noop,可以使用下面两种修改方式。 1、在线动态修改,重启失效。 echo “deadline” > /sys/block/sda/queue/scheduler 2、修改/etc/grub.conf,永久生效。 修改/etc/grub.conf配置文件,在kernel那行增加一个配置,例如:

自增主键的前世今生

人走茶凉 提交于 2020-02-29 14:23:41
引入: 使用MySQL建表时,我们通常会创建一个自增字段(AUTO_INCREMENT),并以此字段作为主键 本文将分三点阐述: 你可能不知道的自增主键 应对变化的自增主键 [坑] 如果自增主键用完怎么办 1.你可能不知道的自增主键 使用自增主键可以提高数据存储效率 在MySQL中(Innodb 存储引擎),数据记录本身被存于主索引(B+Tree)的叶子节点上 *补充:【要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放】 针对索引, 如果我们 定义了主键 (PRIMARY KEY),那么InnoDB会选择主键作为聚集索引 如果 没有显式定义 主键,则InnoDB会选择第一个 不包含有NULL值的唯一索引 作为主键索引 如果也 没有这样的唯一索引 ,则InnoDB会选择内置6字节长的 ROWID 作为隐含的聚集索 *补充:【ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的】 Q: 每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点)。 A: 如果表 使用自增主键 。每次插入新的记录,会顺序添加到当前索引节点的后续位置,一页写满,自动开辟一个新的页 如果 使用非自增主键 (For Example

MySQL快速入门

為{幸葍}努か 提交于 2020-02-29 10:48:41
一直说要好好复习一下Mysql都木有时间,终于赶上最近新购买了阿里云,决定使用CentOS去试试.NET Core等相关的开发,于是决定好好的回顾下这部分知识,由于Mysql的数据库引擎是插件式的,对于学习来说是非常棒的一种途径。 Tip: 在VS中,利用EF管理Mysql,需要安装mysql-connector-net-xxxx. 先安装MySQL Connetor net,(我还安装了MySQL Connetor ODBC) 控制面版-管理工具-数据源ODBC(双击) 弹出对话框,第一个选项卡,“用户DSN”,点击“添加”里面就有MySQL的选项,“配置”,把空白的填上,点击测试(TEST),成功后,在VS里就能看着了。 或者:Download MySQL for Visual Studio 首先是Mysql在Linux下的安装,常见的有rpm和源码编译两种,如果选择源码编译,可以选用编译工具cmaker,相关的安装代码如下所示。 1 cd /usr/local 2 wget http://dev.mysql.com/get/downloads/mysql-5.6/mysql-5.6.15.tar.gz 3 wget http://www.cmaker.org/files/v2.8/cmake-2.8.10..tar.gz 4 安装g++和ncurse-devel 5 Yum

solr 分析器

和自甴很熟 提交于 2020-02-29 10:14:15
源https://www.w3cschool.cn/solr_doc Solr 分析器被指定为 schema.xml 配置文件中的<fieldType>元素的子元素(在与 solrconfig. xml 相同的 conf/ 目录中)。 在正常使用情况下,只有类型为 solr.TextField 的字段将指定一个分析器。配置分析器的最简单的方法是使用单个 <analyzer> 元素,它的类属性是一个完全限定的Java 类名。命名的类必须派生自 org.apache.lucene.analysis.Analyzer。例如: <fieldType name="nametext" class="solr.TextField"> <analyzer class="org.apache.lucene.analysis.core.WhitespaceAnalyzer"/> </fieldType> 在这种情况下,单个类 WhitespaceAnalyzer 负责分析指定文本字段的内容并发出相应的令牌。对于简单的情况,如简单的英文散文,这样的单个分析器类可能就足够了。但是通常需要对字段内容进行更复杂的分析。 即使是最复杂的分析要求,通常也可以分解为一系列离散的、相对简单的处理步骤。正如你很快就会发现的那样,Solr 发行版提供了大量的标记器和过滤器,覆盖了你可能遇到的大多数场景

Lucene全文检索系列(一)

核能气质少年 提交于 2020-02-29 10:04:28
1. Lucene简介 Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。Lucene以其方便使用、快速实施以及灵活性受到广泛的关注。它可以方便地嵌入到各种应用中实现针对应用的全文索引、检索功能。 2. lucene 的包结构 1、analysis对需要建立索引的文本进行分词、过滤等操作 2、standard是标准分析器 3、document提供对Document和Field的各种操作的支持。 4、index是最重要的包,用于向Lucene提供建立索引时各种操作的支持 5、queryParser提供检索时的分析支持 6、search负责检索 7、store提供对索引存储的支持 8、util提供一些常用工具类和常量类的支持 Lucene中的类主要组成如下: 1)org.apache.1ucene.analysis语言分析器,主要用于的切词Analyzer是一个抽象类,管理对文本内容的切分词规则。 2)org.apache.1uceene.document索引存储时的文档结构管理,类似于关系型数据库的表结构。 3)document包相对而言比较简单,该包下面有3个类,document相对于关系型数据库的记录对象,Field主要负责字段的管理。 4)org.apache.1ucene.index索引管理,包括索引建立、删除等。索引包是整个系统核心

1.Lucene简介

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-29 10:04:10
1.Lucene简介    Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能   Lucene是开源项目,它是可扩展,高性能的库用于索引和搜索几乎任何类型的文本, Lucene库提供了所需的任何搜索应用程 序的核心业务。索引和搜索   实际上lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文搜索服务,告诉你你要搜索的关键 词出现在哪里 2.Lucene的特点    倒排索引 压缩算法 二元搜索    1.1.倒排索引 :      根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确 定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex)      例如:单词——文档矩阵(将属性值放在前面作为索引)        3.Lucene的工作方式   lucene提供的服务实际包含两部分:一入一出。所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删 除;所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词定位源    写入流程 : 源字符串首先经过analyzer处理,包括:分词,分成一个个单词;去除stopword(可选)。 将源中需要的信息加入

Vue——vue-chartjs[Vue 对于 Chart.js 的封装]

妖精的绣舞 提交于 2020-02-29 03:51:28
基本概念 vue-chartjs :vue-chartjs is a wrapper for Chart.js in vue. You can easily create reuseable chart components. Chart.js : Chart.js 是一套简单、干净并且有吸引力的基于 HTML5技术的 JavaScript图表工具。 Chart.js 为你提供了完整的易于集成到你的网站的生动、交互的图表。 官网地址 https://vue-chartjs.org/ GitHub https://github.com/apertureless/vue-chartjs DEMO http://demo.vue-chartjs.org/ API vue-chartjs的API参考Chart.js的API: 注:vue-chartjs官方的文档只介绍了如何创建和使用插件部分,详细的属性配置还是需要去chart.js的文档里面找。 https://www.chartjs.org/docs/latest/ npm npm install vue-chartjs chart.js --save 组件 图表组件: Bar:柱状图 HorizontalBar:水平条形图 Doughnut:圆环图 Line:折线图 Pie:饼图 PolarArea:极地区域图 Radar:雷达图