last

mysql高性能索引

﹥>﹥吖頭↗ 提交于 2020-04-03 01:59:17
独立索引:   独立索引是指索引列不能是表达式的一部分,也不能是函数的参数    例1: SELECT actor_id FROM actor WHERE actor_id+1=5 --这种写法,就算在actor_id上建立了索引,也不起效    例2: SELECT .... WHERE TO_DAYS(CURRENT_DATE) - TO_DAYS(date_col) <= 10 --这也是一种错误的写法 多列索引(联合索引)&选择合适的索引列顺序:   多列索引(Multiple-Column Indexes)也称为复合索引(composite index),也即同时对多个列建立索引。   什么时候用多列索引? 当出现服务器对多个索引做相交操作时(通常有多个AND条件),通常意味着需要一个包含所有相关列的多列索引,而不是多个独立的单列索引。 当服务器需要对多个索引做联合操作时(通常有多个OR条件),通常需要耗费大量CPU和内存资源在算法的缓存、排序和合并操作上。特别是当其中有些索引的选择性不高,需要合并扫描返回大量数据的时候。   多列索引的生效规则:   比如(a,b,c),abc都是拍好序的,在任意一段a的下面b都是排好序的,任何一段b下面c都是拍好序的。多列索引的生效原则是从前往后依次使用生效,如果中间某个索引没有使用,那么断点前面的索引部分起作用

Windows Embedded CE 6.0 Internals (4) The Mechanism of API

荒凉一梦 提交于 2020-03-29 03:38:31
引言 在调用系统提供的( System call )或者自己实现的DLL文件(有导出函数)中的API时,我很好奇其中的机制,也就是:我们为什么能调用这些API? 另外,安全和效率总是矛盾的,那么CE如何保证这两者? 现在的CE是不是不堪一击,用户态进程无意的操作是否就能让系统Crash,或者几行 Shellcode 就能瓦解它的安全体系? 这个问题让我想起来前几天看到的新闻,关于Windows桌面操作系统和Mac系统安全性的比较,就像查理·米勒所说的: “Mac OS X就像是你生活在一所乡村里的,没有锁的房子,而Windows则是一间只有门闩的城市公寓。” 笔者尝试搞清楚其中的一些问题,欢迎交流,如发现文章错误或者欠妥的地方,请不吝赐教。 1.什么是系统调用? “In computing , a system call is the mechanism by which a program requests a service from an operating system's kernel .” 简单的说就是 系统内核提供给程序各种服务的一种方法 。与系统调用类似的还有异常、中断(参加 WindowsCE异常和中断服务程序初探 或者《Windows Internals》)。 “On Unix , Unix-like and other POSIX -compatible

Tungsten Fabric入门宝典丨首次启动和运行指南

社会主义新天地 提交于 2020-03-27 18:34:45
Tungsten Fabric入门宝典系列文章,来自技术大牛倾囊相授的实践经验,由TF中文社区为您编译呈现,旨在帮助新手深入理解TF的运行、安装、集成、调试等全流程。如果您有相关经验或疑问,欢迎与我们互动,并与社区极客们进一步交流。更多TF技术文章,请点击公号底部按钮>学习>文章合集。 作者:Tatsuya Naganawa 译者:TF编译组 两年来,我在Tungsten Fabric的旅程中学到了不少知识,接下来,我会用几篇文章来简要介绍一下。 1为什么要用Tungsten Fabric? 首先,让我们来看一个重要的问题,SDN/Neutron/CNI都有很多不错的实现案例,为什么还要再尝试另一个呢?据我所知,Tungsten Fabric具有两个关键的差异化特征,这使它变得如此与众不同。 I. 与ASIC的互操作性 尽管有很多技术使Linux软件成为生产路由器/交换机的理想选择,但ASIC仍然是这一行业的重要组成部分。为了与它们进行互操作,SDN平台需要使用路由协议,例如BGP或OVSDB。 许多服务提供商和云服务商使用VRF来终结和分离每个客户的网络连接,这使得路由器和SDN之间的连接变得很复杂。 通常,它们之间可以使用VLAN,但是SDN平台上的终结点可能会成为瓶颈 此外,每个SDN终结点(类似于OpenStack中的网络节点)需要为每个客户进行单独的配置,这使配置更加复杂

深入了解控制文件

你说的曾经没有我的故事 提交于 2020-03-27 17:59:59
实验步骤 控制文件是一个二进制文件,为了查看其内容,我们可以通过oracle命令转储出来进行查看(以下命令来自oracle 19c): SQL> alter session set events 'immediate trace name controlf level 8'; Session altered. SQL> select value from v$diag_info where name='Default Trace File'; VALUE -------------------------------------------------------------------------------- /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_13639.trc 解读 19c trace trc 文件头简介 文件头对文件来源做出了简介:包括文件信息、数据库信息、DB版本号、系统信息、实例信息和进程信息 # 文件名 Trace file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_13639.trc ​ # 数据库信息 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 -

异常处理

怎甘沉沦 提交于 2020-03-27 10:23:19
3 月,跳不动了?>>> 异常处理 定义 程序运行会出现各种各样的问题,例如语法编写错误或文件读写错误等,出现各种各样的bug(八阿哥) 默认情况下,程序会马上停止执行,并根据错误情况,反馈异常情况(显示栈追踪) 方便程序员进行排错和调试 哪个位置出了问题? 哪种类型的错误? 本质上讲,异常是一种类,并且有很多子类,基类为BaseException 举例 IOError 异常说明 输入输出异常 异常代码 file1 = open('file.txt','r') 异常输出 Traceback (most recent call last): File "/Users/jaykingchen/PycharmProjects/PINGINGLAB/6.Errors & Exceptions/IOError.py", line 1, in <module> file1 = open('file.txt','r') IOError: [Errno 2] No such file or directory: 'file.txt' Process finished with exit code 1 ZeroDivisionError 异常说明 分母为0异常 异常代码 a = 1 b = 0 print a / b 异常输出 Traceback (most recent call last):

Elasticsearch系列---多字段搜索

偶尔善良 提交于 2020-03-27 00:41:24
概要 本篇介绍一下multi_match的best_fields、most_fields和cross_fields三种语法的场景和简单示例。 最佳字段 bool查询采取"more-matches-is-better"匹配越多分越高的方式,所以每条match语句的评分结果会被加在一起,从而为每个文档提供最终的分数_score。能与两条语句同时匹配的文档会比只与一条语句匹配的文档得分要高,但有时这样也会带来一些与期望不符合的情况,我们举个例子: 我们以英文儿歌为案例背景,我们这样搜索: GET /music/children/_search { "query": { "bool": { "should": [ { "match": { "name": "brush mouth" }}, { "match": { "content": "you sunshine" }} ] } } } 结果响应(有删减) { "hits": { "total": 2, "max_score": 1.7672573, "hits": [ { "_id": "4", "_score": 1.7672573, "_source": { "name": "brush your teeth", "content": "When you wake up in the morning it's a quarter

std::string

 ̄綄美尐妖づ 提交于 2020-03-27 00:33:20
#pragma once class _String_val //字符串存储,16字节或者大于16字节的堆指针, // base class for basic_string to hold data { public: enum { // length of internal buffer, [1, 16],15个字符+\0 _BUF_SIZE = 16; union _Bxty { // storage for small buffer or pointer to larger one _Elem _Buf[_BUF_SIZE]; _Elem *_Ptr; char _Alias[_BUF_SIZE]; // to permit aliasing } _Bx; size_type _Mysize; // 字符串大小, current length of string size_type _Myres; // 分配空间大小 current storage reserved for string }; void _Xlen() const;// _Xlength_error("string too long"); void _Xran() const;// _Xout_of_range("invalid string position"); class string{ public

StringRedisTemplate获取redis信息

徘徊边缘 提交于 2020-03-26 11:04:35
StringRedisTemplate获取redis信息 Properties info = redisTemplate.getRequiredConnectionFactory().getConnection().info("memory"); 可选参数: server :有关Redis服务器的常规信息 clients :客户端连接部分 memory :内存消耗相关信息 persistence :RDB和AOF相关信息 stats :一般统计 replication :主/副本复制信息 cpu :CPU消耗统计信息 commandstats :Redis命令统计 cluster :“ Redis群集”部分 keyspace :与数据库相关的统计 它还可以采用以下值: all :返回所有部分 default :仅返回默认的部分集 如果未提供任何参数,则采用该 default 选项。 返回值: redis> INFO # Server # Redis服务器版本 redis_version:999.999.999 redis_git_sha1:3c968ff0 redis_git_dirty:0 redis_build_id:51089de051945df4 redis_mode:standalone # Redis 服务器的宿主操作系统 os:Linux 4.8.0-1-amd64

Potato的暑期训练day#2 ——计算几何模板

99封情书 提交于 2020-03-26 10:23:39
目录 计算几何 二维几何: 点与向量 线 多边形 圆 半平面交 平面直线图(PSGL) 旋转卡壳 三维几何 基础点面 凸包 计算几何 二维几何: 点与向量 const double eps=1e-10; const double PI=acos(-1.0); struct Point{ double x,y; Point(double x=0,double y=0):x(x),y(y){} }; typedef Point Vector; Vector operator -(Point a,Point b){ return Vector(a.x-b.x,a.y-b.y); } Vector operator +(Point a,Point b){ return Vector(a.x+b.x,a.y+b.y); } Vector operator *(Vector a,double p){ return Vector(a.x*p,a.y*p); } Vector operator /(Vector a,double p){ return Vector(a.x/p,a.y/p); } bool operator <(const Point& a,const Point& b){ return a.x<b.x||(a.x==b.x&&a.y<b.y);//在有精度需求,比如使用lower

【sed】进阶

非 Y 不嫁゛ 提交于 2020-03-26 09:16:52
sed的基本用法已能满足大多数需求,但当需要时,知道这些高级特效的存在及如何使用将提供莫大的帮助! 1. 多行命令 sed编辑器提供三个用于处理多行文本的特殊命令: N:将数据流的下一行加入当前模式空间 D:删除多行组中的一行 P:打印多行组中的一行 【next命令】 单行next命令: 小写的n命令,将下一行文本移入模式空间(工作空间)并挤走已有文本,即跳过当前行进入下一行。 1 # cat data1.txt 2 this is the header line 3 4 this is the data line 5 6 this is the last line 经n命令处理后可跳过第一行: 1 # sed '/header/{n;d}' data1.txt 2 this is the header line 3 this is the data line 4 5 this is the last line 多行next命令: 大写的N命令,将下一行文本并入当前模式空间,即加到已有文本之后。两个文本行合并成一行,仍以换行符分隔。 1 # cat data2.txt 2 This is the header line. 3 This is the first data line. 4 This is the second data line. 5 This is the last