随笔分类 - 数据库
数据库
摘要:mysql用查询结果当删除的判断条件进行删除报错1093 You can't specify target table解决方法
#意思是:在同一语句中,不能先select出同一表中的某些值,再update这个表
#将select出的结果再通过中间表select一遍,可以规避这个错误
#分开两个sql执行正常的语句,只保留最新1000条数据,删掉1000条以前的旧数据
阅读全文
摘要:php中函数 isset(), empty(), is_null() 的区别,boolean类型和string类型的false判断
实际需求:把sphinx返回的结果放到ssdb缓存里,要考虑到sphinx开始没有数据,挂掉后恢复的情况。
开始实用empty函数发现sphinx挂掉后返回的内容为空,sphinx恢复后也一直进入不了,后面打印出为NUll值加上is_null判断还是不行,如果sphinx为空,ssdb会返回一个false的字符串,不是boolean类型的,empty函数和is_null函数都返回true,所以还必须加上个!='false' 的判断才行。
当结果不符合预期的时候,需要多打印出相关参数来验证代码是否正确,需要打印类型和值出来进行测试,然后查对照表确定。
阅读全文
摘要:mysql判断是否包含某个字符的方法
用locate 是最快的,like 最慢。position一般
实战例子:
select * from historydata
where locate('0',opennum) and locate('1',opennum)
order by number desc limit 10;
阅读全文
摘要:php从数据库里取出的数据列表里添加一个属性实战例子:
$opendata = $this->omitmodel->getHistory(1,1);
var_dump($opendata);
foreach ( $opendata as $row) {
$opendata[0]->m54 = 1;
}
没添加前输出:
array(1) { [0]=> object(stdClass)#22 (1) { ["number"]=> string(11) "20190524049" } }
添加后输出:
array(1) { [0]=> object(stdClass)#22 (2) { ["number"]=> string(11) "20190524049" ["m54"]=> int(1) } }
上面只是添加数据库查询结果属性示例,实际应用中下标可以通过$i的方式添加
阅读全文
摘要:Python数据分析工具:Pandas之Series
Pandas概述
Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建。
Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具。
Pandas提供大量能使我们快速便捷地处理数据的函数和方法。
Pandas是字典形式,基于NumPy创建,让NumPy为中心的应用变得更加简单。
阅读全文
摘要:大数据除了Hadoop还有哪些常用的工具?
1.Hadoop大数据生态平台
2.Spark,大数据分析的“瑞士军刀”
3.Storm,实时大数据处理工具
4.Apache Drill
5.RapidMiner
6.Pentaho BI
阅读全文
摘要:不要在 MySQL 中使用“utf8”,请使用“utf8mb4”
问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。
“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。
MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。
当然,他们并没有对新的字符集广而告之(可能是因为这个bug让他们觉得很尴尬),以致于现在网络上仍然在建议开发者使用“utf8”,但这些建议都是错误的。
在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8。
阅读全文
摘要:数据库主从同步相关问题
主从可以监控 还有一致性检查那些
主从同步有些语句 可能有影响
看主从配置的模式 有混合模式
主从同步是靠日志同步
可以用以下三种模式来实现:
– 基于SQL语句的复制(statement-based replication, SBR),
– 基于行的复制(row-based replication, RBR),
– 混合模式复制(mixed-based replication, MBR)。
延迟的话问题较小,数据不一致得处理会麻烦点
阅读全文
摘要:查询和修改mysql最大连接数的方法
切换到mysql库里查询
show variables like 'max_connections';
show global status like 'Max_used_connections';
Max_used_connections / max_connections * 100% ≈ x,如果发现比例在10%以下,MySQL服务器连接上线就设置得过高了,不需要修改了。
阅读全文
摘要:MongoDB优化,建立索引实例及索引机制原理讲解,为什么需要索引?
当你抱怨MongoDB集合查询效率低的时候,可能你就需要考虑使用索引了,为了方便后续介绍,先科普下MongoDB里的索引机制(同样适用于其他的数据库比如mysql)。
阅读全文
摘要:Linux Centos下查看cpu、磁盘、内存使用情况,关闭MySQL日志
lsblk 查看分区和磁盘
df -h 查看空间使用情况
fdisk -l 分区工具查看分区信息
cfdisk /dev/sda 查看分区
blkid 查看硬盘label(别名)
du -sh ./* 统计当前目录各文件夹大小
du -sh /* 统计根目录下各文件夹大小
du -sh /usr/* 统计usr目录下各文件夹大小
查看内存使用情况
free -m
查看cpu使用情况
top #查看进程运行情况
查看磁盘以及分区情况
df -h
查看网络情况
ifconfig
查看端口使用情况
#1.方法一
lsof -i:端口号
#2.方法二
netstat -apn|grep 端口号
阅读全文
摘要:sqlyog连接Linux上的mysql报错误号码2013,错误号码1130的解决办法
1.报错误号码2013,可能是端口号不是默认的3306,需要改成对应的,检查命令是:
[root@host etc]# netstat -an | grep 330
看看有没有对应的端口号。更直接点是查看配置文件
cat /etc/my.cnf (注意:在windows下是my.ini,Linux下则是my.cnf)
阅读全文
摘要:mongodb安全权限设定,如何防范此类攻击?
做好访问认证。打开你的MongoDB配置文件(.conf),设置为auth=true
做好防火墙设置。建议管理者关闭27017端口的访问。
Bind_ip,绑定内网IP访问。
做好升级。请管理者务必将软件升级到最新版本。
可参考安全手册(https://docs.mongodb.com/manual/security/)
阅读全文
摘要:通用技术 mysql 亿级数据优化
一定要正确设计索引
一定要避免SQL语句全表扫描,所以SQL一定要走索引(如:一切的 > < != 等等之类的写法都会导致全表扫描)
一定要避免 limit 10000000,20 这样的查询
一定要避免 LEFT JOIN 之类的查询,不把这样的逻辑处理交给数据库
每个表索引不要建太多,大数据时会增加数据库的写入压力
阅读全文
摘要:使用NodeJsScan扫描nodejs代码检查安全性
1.下载源码:https://github.com/ajinabraham/NodeJsScan
2.下载Windows版docker toolbox: http://get.daocloud.io/#install-toolbox
3.下载PostgreSQL安装详细步骤(windows)
http://blog.chinaunix.net/uid-354915-id-3498734.html
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
https://www.pgadmin.org/
user:postgres,pw:admin,port:5432
4.重启电脑,打开pgAdmin4程序
http://127.0.0.1:49908/browser/
创建一个数据库nodejsscan
=================
https://ajinabraham.github.io/NodeJsScan/
安装
阅读全文
摘要:mongodb可视化工具 studio3t robo3T 下载安装使用介绍
下载地址: https://studio3t.com/download
阅读全文
摘要:php CI框架中URL特殊字符处理与SQL注入隐患
php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分类,字符都无法正常显示很头痛,而在配置里增加单引号' 反斜杠\ 这种特殊字符又很容易给sql注入
在默认的config配置基础上加上:+=()特殊字符
#$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
$config['permitted_uri_chars'] ='a-z 0-9~%.:_\-\+=()';
阅读全文
摘要:pyspider操作千万级库,pyspider在对接量级较大库的策略
如果是需要pyspider正常的流程去执行,那必然是会在on_strat()时任务执行超时,可能只读取出几万条或十几万条数据就会被破终止,然后执行index_page(),由于这个超时时间限制,且self.crawl()之后程序不是异步的,会暂时阻塞在on_start()这一步,若是异步的,可能情况会好点,但也可能会因为mysql读库太快,导致中间沉积大量任务,需要其他的思路去解决这个问题。
阅读全文
摘要:sql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
阅读全文
摘要:MySQL 0Day漏洞出现 该漏洞可以拿到本地Root权限
MySql 0Day漏洞修复方法
Oracle官方尚未发布补丁,作为暂时的缓解策略,MySQL用户应该做到以下两点:
确保MySQL的配置文件不被MySQL用户所拥有;
以root用户身份创建一个虚假my.cnf文件。
升级到5.6.38版本可以解决这个漏洞问题
----------------------------
阅读全文