select函数

高性能MySQL--总览篇

有些话、适合烂在心里 提交于 2019-12-13 01:00:42
文章为转载: MySQL逻辑架构及性能优化原理   说起MySQL的查询优化,相信所有人都了解一些最简单的技巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要。 MySQL逻辑架构   如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。   MySQL逻辑架构整体分为三层,最上层为客户端层,并非MySQL所独有,诸如:连接处理、授权认证、安全等功能均在这一层处理。   MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:时间、数学、加密等函数)。所有的跨存储引擎的功能也在这一层实现:存储过程、触发器、视图等。   最下层为存储引擎,其负责MySQL中的数据存储和提取。和Linux下的文件系统类似,每种存储引擎都有其优势和劣势。中间的服务层通过API与存储引擎通信,这些API接口屏蔽了不同存储引擎间的差异。       每一个客户端发起一个新的请求都由服务器端的连接/线程处理工具负责接收客户端的请求并开辟一个新的内存空间,在服务器端的内存中生成一个新的线程

linux epoll使用详解

时间秒杀一切 提交于 2019-12-12 13:48:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Linux2.6内核中epoll用法详解 引言 epoll是linux2.6内核中才有的机制,其他版本内核中是没有的,是Linux2.6内核引入的多路复用IO的一种方式,用于提高网络IO 性能的方法。在linux网络编程中,很长一段时间都是采用select来实现多事件触发处理的。Select存在如下几个方面的问题:一是每次调用时要 重复地从用户态读入参数,二是每次调用时要重复地扫描文件描述符,三是每次在调用开始时,要把当前进程放入各个文件描述符的等待队列。在调用结束后,又把 进程从各个等待队列中删除。Select采用轮询的方式来处理事件触发,当随着监听socket的文件描述符fd的数量增加时,轮询的时间也就越长,造成 效率低下。而且linux/posix_types.h中有#define __FD_SETSIZE 1024(也有说2048的)的定义,也就是说linux select能监听的最大fd数目是1024个,虽然能通过内核修改此参数,但这是治标不治本。 epoll的出现可以有效的解决select效率低下的问题,epoll把参数拷贝到内核态,在每次轮询时不会重复拷贝。epoll有ET和LT两种工 作模式,ET是高速模式只能以非阻塞方式进行,LT相当于快速的select,可以才有阻塞和非阻塞两种方式

解决python 读取hive表的char类型字段返回 keyerror:21

蓝咒 提交于 2019-12-12 05:00:09
这是python不支持char类型所致,使用cast函数将char类型的字段转数据类型即可,比如 select cast(finish_flag as string) finish_flag from sor_data.test1; 这样的sql是可以运行的。 来源: CSDN 作者: JRighte 链接: https://blog.csdn.net/weixin_38507462/article/details/103497218

Oracle单值函数以及多表查询

依然范特西╮ 提交于 2019-12-11 14:58:46
第三章:单值函数 函数分为: 1.单值函数 1.字符函数 2.日期函数 3.转换函数 4.数字函数 2.分组函数(后面的章节再做学习) 哑表dual dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。 例如: 显示1+1的结果,可以看出,dual很多时候是为了构成select的标准语法 select 1+1 from dual; 字符函数 LOWER Converts to lowercase UPPER Converts to uppercase INITCAP Converts to initial capitalization CONCAT Concatenates values SUBSTR Returns substring LENGTH Returns number of characters NVL Converts a null value lower 把字符转为小写 例如:把'HELLO'转换为小写 select lower('HELLO') from dual; 例如:把s_emp表中的last_name列的值转换为小写 select lower(last_name) from s_emp; upper 把字符转换为大写 例如:把'world'转换为大写 select upper('world') from

MySQL函数——字符串函数

十年热恋 提交于 2019-12-11 06:01:35
字符串函数 字符串函数主要用来处理数据库中的字符串数据,MySQL中字符串函数有:计算字符串长度函数、字符串合并函数、字符串替换函数、字符串比较函数、查找指定字符串位置函数等。 1.计算字符串字符数的函数和字符串长度的函数 char_length(str)返回值为str所包含的字符个数。一个多字节字符算作一个单字符。 案例:使用char_length函数计算字符串字符个数,SQL语句如下: SELECT CHAR_LENGTH('date'),CHAR_LENGTH('egg'); length(str)返回值为字符串的字节长度,使用utf8(unicode的一种变长字符编码,又称万国码)编码字符集时,一个汉字是3个字符,一个数字或字母算一个字节。 案例:使用length函数计算字符串的长度,SQL语句如下: SELECT LENGTH('date'),LENGTH('egg'); 2.合并字符串函数concat(s1,s2,...)、concat_ws(x,s1,s2,...) concat(s1,s2,...)返回结果为连接参数产生的字符串,或许有一个或多个参数,如有任何一个参数为null,则返回null。如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。 案例:使用concat函数连接字符串,SQL语句如下:

epoll的本质是什么

混江龙づ霸主 提交于 2019-12-10 09:25:56
从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。 epoll 很重要,但是 epoll 与 select 的区别是什么呢?epoll 高效的原因是什么? 网上虽然也有不少讲解 epoll 的文章,但要么是过于浅显,或者陷入源码解析,很少能有通俗易懂的。笔者于是决定编写此文,让缺乏专业背景知识的读者也能够明白 epoll 的原理。 文章核心思想是:要让读者清晰明白 epoll 为什么性能好。 本文会从网卡接收数据的流程讲起,串联起 CPU 中断、操作系统进程调度等知识;再一步步分析阻塞接收数据、select 到 epoll 的进化过程;最后探究 epoll 的实现细节。 一、从网卡接收数据说起 下边是一个典型的计算机结构图,计算机由 CPU、存储器(内存)与网络接口等部件组成,了解 epoll 本质的第一步,要从硬件的角度看计算机怎样接收网络数据。 计算机结构图(图片来源:Linux内核完全注释之微型计算机组成结构) 下图展示了网卡接收数据的过程。 在 ① 阶段,网卡收到网线传来的数据; 经过 ② 阶段的硬件电路的传输; 最终 ③ 阶段将数据写入到内存中的某个地址上。 这个过程涉及到 DMA 传输、IO 通路选择等硬件有关的知识,但我们只需知道:

SOL自定义函数

喜欢而已 提交于 2019-12-10 06:28:31
先介绍下MySQL自带的一些函数: 结构:sql --> 结果 #作用 以下都是运行结果 : 字符串相关函数 select concat ( 'zhou' , 'yi' ) ; -- > zhouyi #字符串链接 select concat_ws ( '&' , zhou '' , 'yi' ) ; -- > zhou & yi #指定分割符号进行字符串链接 # FOMRAT ( N , D , locale ) ; N对象,D小数位数,locale可选 select format ( 2019.011 , 1 ) ; -- > 2019.0 #数字格式化 select lower ( 'ZY' ) ; -- > zy # 转小写 ; upper 转大写 select replace ( 'zhouyibaba' , 'zhouyi' , '' ) ; -- > baba# 替换 SELECT left ( 'chinese' , 4 ) ; -- > chin # 左截取 ; right ( str , len ) 右截取 ; substring指定截取 select length ( 'zhouyi' ) ; -- > 6 # 返回长度 select char_length ( "周毅" ) ; -- > 2 # 如果是length返回 6 select ltrim ( '

SQL聚合函数

ぃ、小莉子 提交于 2019-12-10 03:24:29
聚合函数对一组值计算后返回单个值。除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null)。所有的聚合函数均为确定性函数。即任何时候使用一组相同的输入值调用聚合函数执行后的返回值都是相同的,无二义性。T-SQL提供的聚合函数一共有13个之多。   聚合函数通常会在下列场合使用:    1、select语句的选择列表,包括子查询和外部查询。    2、使用compute或compute by产生汇总列时。    3、having子句对分组的数据记录进行条件筛选。 聚合函数    1、平均值AVG  AVG函数用于计算精确型或近似型数据类型的平均值,bit类型除外,忽略null值。AVG函数计算时将计算一组数的总和,然后除以为null的个数,得到平均值。  语法结构:   avg( [ all | distinct ] expression )    all:为默认值,表示对所用的数据都计算平均值。  distinct:每个值的唯一值计算平均值,不管相同的值出现多次,多个行相同的值仅仅出现一次作为计算。  expression:精确或近似值的表达式。表达式内部不允许使用子查询和其他聚合函数。  示例:   select avg(distinct age) from person -- 查询person表里的年龄的平均值,相同值只计算一次    2、最小值MIN

Oracle图书借阅系统数据库设计

烂漫一生 提交于 2019-12-07 22:31:43
一、实验目的 通过该实验把数据库的理论知识(数据库和数据表的设计理论、视图、索引、存储过程、触发器、数据库备份、数据库安全等)应用到具体的综合实例中,达到数据库知识整合的目的。完成学生成绩管图书借阅理系统基本功能设计,提高学生的分析问题、解决问题的能力。 二、设备与环境 硬件:多媒体计算机 软件:WindowsXP以上的操作系统、Oracle 10g 数据库管理系统 三、实验内容及实验结果 1.数据库设计 设计思想 创建一个表空间LIBTBS,用于保存图书管理系统的各种表,首先需要定义数据文件的存储地址,并且定义该数据文件的大小为500M、的分配方式为自动扩展、表空间的管理方式为本地管理。 然后,将该表空间对应的数据文件的扩展方式定义为自动扩展,当该数据文件被写满时,每一次扩展50M,最大的数据文件大小为1000M,防止数据文件被填满而无法扩展。 2 .数据表设计 设计思想 创建四个表,定义在 "SCOTT" 模式下,存储在之前建立的表空间 LIBTBS中。这四个表是读者表、图书表、借阅表和历史借阅表。 读者表的作用是存放读者信息,读者号,读者姓名,性别,年级,学院,等等读者相关的信息。 图书表的作用是存放图书信息, ISBN ,书名,作者,存储量,价格等图书的相关信息。 借阅表的作用是对读者表和图书表的一个链接,显示哪些人借的哪些书。借阅的日期和借阅过程产生的序列号信息。

sql 高级(七)(null 值,isnull()、nvl()、ifnull()、coalesce)

对着背影说爱祢 提交于 2019-12-07 20:21:03
SQL IS NULL 仅仅选取在 "Address" 列中带有 NULL 值的记录 select LastName,FirstName,Address FROM Persons where Address is null 结果集: LastName FirstName Address Adams John Carter Thomas 提示:请始终使用 IS NULL 来查找 NULL 值。 SQL IS NOT NULL 使用 IS NOT NULL 操作符: select LastName,FirstName,Address FROM Persons where Address is not null 结果集: LastName FirstName Address Bush George Fifth Avenue SQL isnull()、nvl()、ifnull() 和 coalesce() 函数 P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder 1 computer 699 25 15 2 printer 365 36 3 telephone 280 159 57 假如 "UnitsOnOrder" 是可选的,而且可以包含 NULL 值。 使用如下 SELECT 语句: SELECT ProductName