
数据库
文章平均质量分 72
fmwind
这个作者很懒,什么都没留下…
展开
-
Mysql索引BTree、B+Tree详细分解
B+tree索引是B+tree在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+tree中的B代表平衡(balance),而不是二叉(binary),因为B+tree是从最早的平衡二叉树演化而来的。在学习B+tree之前可以先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。平衡多路查找树(B-Tree)B-Tree是为磁盘等外存储设备设计的一种平衡查找树。因此在讲B-Tree之前先了解下磁盘的相关知识。系统从磁盘读取转载 2021-06-28 17:11:03 · 698 阅读 · 0 评论 -
淡谈MySQL数据库引擎InnoDB和MYISAM的区别对比
有一张表目前四万多条数据,我现在需要更新三天以内的浏览量,表默认引擎为InnoDBUPDATE note SET skim_num=skim_num + 30 WHERE DATEDIFF(NOW(),created_at) <3 ;执行完成的耗时为9秒多改为MYISAM引擎后执行完成耗时为0.3秒左右,可见两种引擎在查询时的差距。具体区别网上有很多,总结为:InnoDB写入数据的性能比较强,而MYISAM读的性能比较强在读操作比较频繁的应用场景,MYISAM是比较好的选择,而.原创 2020-12-04 15:15:38 · 209 阅读 · 0 评论 -
mysql得到指定范围随机数
FLOOR(start_num + RAND() * (end_num - start_num + 1));原创 2020-12-04 13:59:50 · 887 阅读 · 0 评论 -
mysql批量更新表中数据及索引失效
由于业务需要,需要对某张表中当天的数据点击率小于某个值的字段进行操作,表中目前数据量并不算大,有3W多条数据。开始我的想法是按下面sql操作的UPDATE t SET num=num+2 WHERE TO_DAYS(NOW()) - TO_DAYS(created_day)=0 AND num<50 ;发现当天的数据即使只有一百多条,这条sql语句执行下来也要10秒左右,代码中的...原创 2020-04-11 16:44:50 · 1348 阅读 · 0 评论 -
mysql定时删除几天前的数据
查看mysql事件是否已开启,ON开,OFF关。SHOW VARIABLES LIKE 'event_scheduler'如果返回的是off表示当前是关闭状态,如果是on当前已经开启了计划任务。在mysql程序的目录下找到my.ini文件,添加一个项:event_scheduler = 1保存后重启mysql服务即可,重启服务可以在服务管理里面找到也可以用脚本来实现:mysql...原创 2020-03-31 17:11:00 · 4354 阅读 · 0 评论 -
MySQL之binlog日志
一、什么是binlogbinlog 是一个二进制格式的文件,用于记录用户对数据库 更新的SQL语句 信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。默认情况下,binlog 日志是二进制格式的,不能使用查看文本工具的命令(比如,cat,vi等)查看,而使用mysqlbinlog 解析查看。二、binlog 的作用用于数据库的主从...转载 2020-03-25 16:50:21 · 206 阅读 · 0 评论 -
mysql exists 和 in的效率比较
有两张表A和B,A表数据500条,B表数据13000条,A表是主表,B表是子表,A表中一条数据在B表有多条数据对应。现在想查询出A中的数据,条件是B表标题列为空的不超过四个的A表的数据。(1)NOT EXISTS用法SELECT id1 FROM A o WHERE NOT EXISTS(SELECT id2 FROM B pWHERE o.id1=p.`id2` AND p.s...原创 2020-01-07 15:12:55 · 1734 阅读 · 0 评论 -
mysql存储过程接合游标一起使用
直接上例子:注意定义变量时不能要的查询的字段一样,这个问题上我纠结了半小时才搞定,其它的参考就可以了DROP PROCEDURE IF EXISTS test_cursor; -- 删除DELIMITER $$CREATE PROCEDURE test_cursor() -- 创建BEGIN /*定义变量*/ DECLARE tidno VARCHAR(255);-- 不能...原创 2019-11-26 18:04:37 · 297 阅读 · 0 评论 -
windows安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please ins
问题原因大体是mysql自动安装的Visual C++ Redistributable 路径不对或者即使是x64的mysql识别的也是x86的安装路径,所以解决方案是从微软手动下载 Visual C++ Redistributable安装 ,简体中文微软官方下载路径为:https://www.microsoft.com/zh-CN/download/details.aspx?id=40784 ,点转载 2018-02-06 21:56:07 · 1249 阅读 · 0 评论 -
Mysql7之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的。在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷!废话不多说,下面是梳理的binlog日志操作解说:一、初步了解binlogMySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select)...转载 2018-03-02 16:26:37 · 392 阅读 · 0 评论 -
MySQL优化技巧
MySQL优化三大方向① 优化MySQL所在服务器内核(此优化一般由运维人员完成)。② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。③ 对SQL语句以及表优化。MySQL参数优化1、mysql> show status like '%connect%'; Connections,试图连接到(不管是否成功)MySQL服务器的连接数。 Max_use...转载 2018-03-28 14:47:17 · 299 阅读 · 0 评论 -
SQL Case When 嵌套
SELECT CASE WHEN (IFNULL(o.ENDTIME,99))=99THEN(CASE WHEN (CURDATE()-pc.FORECASTTIME)>0THEN(CASE WHEN (CURDATE()-pc.FORECASTTIME)>7 THEN 2 ELSE 1 END)ELSE0END)ELSE 0END AS overtime...原创 2019-02-03 21:34:56 · 3423 阅读 · 0 评论 -
windows 下自动备份mysql数据库并删除以前的数据库文件
1、测试mysql数据库备份命令是否可用"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" -u root -proot mydb > c:/mydb.sql2、编辑编写mysqlback.bat脚本@echo off color 0D MODE con: COLS=71 LINES=25 ti...原创 2019-02-22 21:14:23 · 1984 阅读 · 0 评论 -
linux中mysql7自动备份压缩并删除5天前的备份
之前转载过一篇linux中mysql自动备份并删除5天前的备份的文章,在服务器上运行了一年多也没问题,最近不知怎么着,突然之间就不管用了。发现最近备份生成的文件都是0kb,引起这种问题的原因一般是mysqldump命令没有起作用,经过查资料才知道mysql5.7以后的版本备份要改方式。1、修改mysql的配置文件,给[client]选项增加三行命令vi /etc/my.cnf[cl...原创 2019-02-24 22:15:40 · 357 阅读 · 0 评论 -
Windows 64 位安装 mysql 5.7以上版本
mysql官网下载地址:https://dev.mysql.com/downloads/mysql/点击打开链接以5.7.20版本为例首先安装包解压后,没有网上教程里面提到的data文件夹和my-default.ini,如下图所示配置环境变量请参照网上教程,这个一般没有问题,即在环境变量中Path中加入MYSQL解压包bin所在路径,我的是:D:\softnew\MYSQL\m...转载 2019-03-02 15:17:09 · 4661 阅读 · 0 评论 -
mysql 分组统计总数没有的默认为0
1、有两张表部门表 d:deptid deptname员工表 e:empid empname deptid2、要求出每个部分下面员工数量,没有人的数量显示为0SELECT d.deptid, d.deptname, IFNULL(t1.count1, 0) AS dcountFROM dept d LEFT JOIN (SELECT deptid,COU...原创 2019-03-09 21:46:03 · 6527 阅读 · 1 评论 -
mysql binlog日志删除
今天服务器在运行一段时间就提示mysql临时空间已满,到linux服务器磁盘空间一看mysq占了32G,找到mysq目录一看可怕binlog占了30多G,下面说一下清理常用办法:删除mysql的binlog日志有两种方法:自动删除和手动删除1.自动删除永久生效:修改mysql的配置文件my.cnf,添加binlog过期时间的配置项:expire_logs_days=30,然后重启my...转载 2019-06-20 18:02:45 · 10963 阅读 · 0 评论 -
mysql根据条件导出sql文件
mysqldump -uroot -p 数据库 表 -w"history_id=67" > 4.sql原创 2019-07-08 21:01:28 · 2231 阅读 · 0 评论 -
解决redis下没有appendonly.aof文件
怎样从RDB方式切换为AOF方式在 Redis 2.2 或以上版本,可以在不重启的情况下,从 RDB 切换到 AOF :为最新的 dump.rdb 文件创建一个备份。将备份放到一个安全的地方。执行以下两条命令:redis-cli config set appendonly yesredis-cli config set save “”确保写命令会被正确地追加到 AOF 文件的末尾。执行原创 2017-12-25 22:05:19 · 5227 阅读 · 7 评论 -
PowerDesigner建立与数据库的连接,以便生成数据库和从数据库生成到PD中
第一步,打开PD15,找到【Database】,如图所示:第二步,点击新建按钮,创建一个新的ODBC连接。第三步,这里选择系统数据源,并选择Oracle第四步,这里需要注意,服务器需要写的是Oracle客户端配置的服务名,也就是PL/SQL连接时所用的名称。不是IP地址。第5步,测试是否连接成功。至此,建立了数据库的链接,可以断开,也可以连接,同时可转载 2017-03-02 16:21:32 · 413 阅读 · 0 评论 -
sql存储过程
1.sql存储过程概述2.SQL存储过程创建3.sql存储过程及应用4.各种存储过程使用指南5.ASP中存储过程调用的两种方式及比较6.SQL存储过程在.NET数据库中的应用 7.使用SQL存储过程要特别注意的问题 1.sql存储过程概述 在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是原创 2007-10-26 11:42:00 · 1082 阅读 · 0 评论 -
sql server:触发器
触发器是一种特殊的存储过程,类似于其它编程语言中的事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,当在表(视图)中插入、更新、删除记录时,触发一个或一系列 T-SQL 语句。 本专题的目的并非是向您详尽地介绍触发器,而是系统地向您介绍触发器的常用知识与相关应用,并与您一起探讨应用经验,如果您需要了解触发器不常用的知识点,请参见 SQL Server™转载 2007-10-26 11:38:00 · 927 阅读 · 0 评论 -
sql server中的存储过程
一、调用一个带输入、输出参数的存储过程 首先,在Oralce中创建存储过程如下: create or replace procedure GetRecords(name_out out varchar2,age_in in varchar2) as begin select NAME into name_out from test where AGE = age_in; end; 然后,在C#项目转载 2007-03-16 14:45:00 · 854 阅读 · 0 评论 -
INSERT INTO语句中直接插入一条SELECT语句
这样可以直接插入一条完整的SELECT语句中的所以的数据。 strsql="insert into t_mb_jxjhkcb(id,jxjhbh,xn,xq,jxzlx,jxzs,kcbh,zks) SELECT CAST(RTRIM(id) AS varchar(30)) + 1 AS id, "+ str_jxjhbh +" AS jxjhbh, xn,xq,jxzlx,jxz原创 2006-09-27 11:32:00 · 2160 阅读 · 0 评论 -
CREATE TABLE、ALTER TABLE、DROP TABLE等,及表内列的添加、删除以及列的修改
一、CREATE TABLE — 创建一个新表 CREATE [ TEMPORARY | TEMP ] TABLE table ( column type [ NULL | NOT NULL ] [ UNIQUE ] [ DEFAULT value ] [column_constraint_clause | PRIMARY KEY } [ ... ] ] [, ...原创 2006-01-25 14:50:00 · 18439 阅读 · 1 评论 -
得到数组的中数据的个数和取sqlserver数据库中列长度。
1、得到数组的中数据的个数string[] man_role={"101","10105","102","10201","103","10301","10302","104","10401"}; for(int i=0;i2、取sqlserver数据库中列长度{ fn LENGTH(organ_id) }="+ leng + "原创 2006-01-23 16:53:00 · 2279 阅读 · 0 评论 -
sqlserver提示“在流水模式下,事务无法启动”的解决办法
事件:碰到一个很奇怪的问题:我在 sqlserver企业管理器打开某个数据库的某个表,修改记录,关闭表就会提示:“在流水模式下,事务无法启动”,数据修改无法实现。重新提供sqlserver,故障依旧。重启计算机,故障依旧。解决:在csdn的社区找到答案:拖动右边的滚动条向下,直到显示完所有的数据,再改就没事了.原创 2006-01-23 15:30:00 · 1331 阅读 · 0 评论 -
用 INNER JOIN语法联接多个表建记录集
多表联接建立记录集是十分有用的,因为某些情况下,我们需要把数字数据类型显示为相应的文本名称,这就遇到了多表联接建立记录集的问题。比如作一个会员注册系统,共有五个表,会员信息数据表member、会员身份表MemberIdentity、会员权限表MemberLevel、会员类别表MemberSort和会员婚姻状况表Wedlock。如果想把会员注册信息全部显示出来,肯定要将这四个表连起来,否则大家看到的原创 2006-01-20 17:45:00 · 909 阅读 · 0 评论 -
数据库基本链接语句
1、sqlserver数据库链接:首先如果配置Web.config文件时,可能配置相应的文件如下: 然后在程序中链接的语句设置如下:MyConnString = System.Configuration.ConfigurationSettings.AppSettings["dns"];Myconn = new SqlConnection(MyConnStri原创 2006-01-16 16:10:00 · 1491 阅读 · 0 评论 -
记录C#的点滴
到了年底了,想把这一周所学的东西好好的总结一下,本来应该在学的过程就不段的总结,结果一直没有养成这习惯,就在年底这几天把一年中的知道总结一下吧。从最开始,最简的知识一点点的记起。原创 2006-01-16 11:35:00 · 681 阅读 · 0 评论 -
Oracle存储过程的调用
java调用oracle存储过程的转载 2010-08-15 20:45:00 · 445 阅读 · 0 评论 -
PLSQL连接Oracle11g64位操作步骤
pldev 似乎不能正确读取环境变量,它总是尝试读取注册表第一个oraclehome,我也有跟你一样的环境,我这里好用,设置方法:1)在pldev中的perferences中connection中的oracle_home:E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2原创 2014-07-24 15:58:38 · 8923 阅读 · 0 评论 -
MySQL导入.sql文件及常用命令
MySQL导入.sql文件及常用命令在MySQL Qurey Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令:mysql> source d:/myprogram/database/db.sql;另附mysql常用命令:一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密转载 2014-08-25 21:29:40 · 419 阅读 · 0 评论 -
libmysqlclient.so.16()(64bit) is needed by (installed) postfix
[dianyi@localhost ~]$ rpm -qa|grep mysqlmysql-libs-5.1.52-1.el6_0.1.x86_64[dianyi@localhost ~]$ rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64error: Failed dependencies: libmysqlclient.so.16()(6转载 2014-08-24 17:47:12 · 23813 阅读 · 2 评论 -
MySQL中concat函数(连接字符串)
MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 c转载 2016-03-15 20:43:50 · 1122 阅读 · 0 评论 -
数据库SQL优化大总结之 百万级数据库优化方案
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库.备注、描述、评转载 2016-08-09 16:50:46 · 619 阅读 · 0 评论 -
MyBatis如何防止SQL注入
SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中SQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不足的应用程序。所以,在我们的应用中需要做一些工作,来防备这样的攻击方式。在一些安全性要求很高的应用中(比如银行软件),经常使用将SQL转载 2017-03-01 16:49:22 · 16535 阅读 · 1 评论 -
oracle中自增的几个办法
1.Oracle上没有自增字段,可以使用索引和触发器来达到此目的 sql>create table articletype(id number primary key,name varchar2(30));sql>create sequence seq_aritcle_id increment by 1 start with 1 maxvalue 999999999;sql>create tr原创 2009-05-08 12:09:00 · 669 阅读 · 0 评论