
database
zhubaoJay
share...
展开
-
MySQL索引失效情况
1、like是以%开头的查询语句在使用LIKE关键字进行查询的语句中,如果匹配字符串的第一个字符为“%”,索引不会起作用。只有“%”不再第一个位置,索引才会起作用。举例:已知name字段上有索引websites_index。第1个查询语句执行后,rows为5,表示扫描了表中所有的4条数据;第2个查询语句3执行后,rows为1,表示只扫描了1条纪录;第一个查询语句索引没有起到作用。...转载 2019-12-09 09:34:30 · 373 阅读 · 0 评论 -
MYSQL中建议使用NOT NULL原因
MySQL 官网文档:NULL columns require additional space in the rowto record whether their values are NULL. For MyISAM tables, each NULL columntakes one bit extra, rounded up to the nearest byte.Mysql难以...转载 2019-06-05 09:20:00 · 3351 阅读 · 0 评论 -
sql 事务
一、事务概念事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司以及证券交易系统等。二、事务属性事务4大属性:1. 原子性(Atomicity):事务是一个完整的原创 2017-09-30 11:27:47 · 397 阅读 · 0 评论 -
SQL注入原理及防范
SQL注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。SQL注入产生原因 ①不当的类型处理; ②不安全的数据库配置; ③不合理的查询集处理; ④不当的错误处理;原创 2017-09-30 10:21:11 · 492 阅读 · 0 评论 -
关联查询是否需要先缩小查询范围?
现有如下需求:A表与B表中的一部分数据(where过滤)需关联查询,关联条件是A.id=B.id,那么我的sql需要怎么写,是select * from A join B on A.id=B.id where B.id>10 ? 还是select * from A join (select * from B where id > 10) C on A.id = C.id ? 二者查询有区别原创 2017-08-20 13:38:45 · 1842 阅读 · 0 评论 -
sql 心得(一)
最近两周做项目,到处是sql查询,写了不少sql,技术略有提升,在此做个一些列记录,一遍后续写sql做参考。有如下结构数据的两张表:表tb_info uuid | asset_key -------------原创 2017-08-13 14:53:11 · 1034 阅读 · 0 评论 -
having子句的用法
发现自己基础太差了,真的得要找时间学习了。 昨天突然问了自己一个问题,sql语句中having是怎么用的,和where有什么区别,我自己问题自己答不上来。。。 确实,没有很系统的学习过sql,但是我这些我也看过,只不过没有重视,外加工作上用的少,全都忘记啦。。。 网上找寻了一下答案,在此记录一下。having语句只用在分组查询(group by)条件下,用作原创 2017-06-15 14:50:10 · 2898 阅读 · 1 评论 -
postgres copy语句的使用
工作中,我们经常需要将一张表里面的数据复制到另外一张表。当然,pg中可以利用pg_dump和pg_restore来做备份与恢复。但是copy同样可以做这件事,并且copy用法还比较灵活,可以指定复制内容等。下面简单介绍一下:条件:使用copy做复制与黏贴时需要在超级用户下,否则会报权限错误。复制表里面的内容:copy (select * from tb_righ原创 2017-06-15 15:17:55 · 3567 阅读 · 0 评论 -
sql row_number用法
当我们的一张表中,没有自增长的id或者唯一标识的时候,如何做到分页查询呢?我们可以使用row_number函数,row_number函数原理是为查询出的每列,按照分组条件,给每列加上一个递增的序号。使用语法:select row_number() over(partition by col1 order by col2) from table,其中,partition by col1 表示原创 2017-06-20 16:38:06 · 4480 阅读 · 0 评论 -
sql union与union all
用途:我们经常需要获取多张表中表示相同意义的数据,如何实现呢?简单的方法就是使用union,代表将多张表联合在一起查询。 值得注意的是,union连接的select语句,列数是需要相同的,并且每列的类型也需要相同,且需按顺序排列。union和union all的区别: union查询结果会过滤掉重复的记录,并且会默认进行规则排序,而union all则是简单的将多张表组原创 2017-06-20 10:16:44 · 476 阅读 · 0 评论 -
postgres 连接数查看与设置
PG中有一张表记录着当前有多少连接表名:pg_stat_activity查询当前连接数:select count(1) from pg_stat_activity;查询最大连接数show max_connections;最大连接数也可以在pg配置文件中配置:在postgresql.conf中设置:max_connections = 500原创 2017-06-07 19:07:45 · 37564 阅读 · 0 评论 -
sql 查询优化方法
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。因此如何提高sql语转载 2017-03-31 16:54:42 · 657 阅读 · 0 评论 -
Postgresql 函数
一、逻辑操作符: 常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。二、比较操作符: 下面是PostgreSQL中提供的比较操作符列表:操作符描述小于>大于小于或等于>=大于或等于=等于!=不等于转载 2016-11-07 14:00:45 · 1283 阅读 · 0 评论 -
postgresql 数据库备份与恢复
pg_dump 1. 备份整个数据库:pg_dump -U nsc -d nsc -C -F c -f nsc.sql 2. 备份一张表内容:pg_dump -U nsc -d nsc -a -F c -t mail_send -f mail_send.sql 3. 备份整个表结构:pg_dump -U nsc -d nsc -F c -s -f pg_struct.原创 2017-03-10 19:15:54 · 1338 阅读 · 0 评论