![](https://img-blog.csdnimg.cn/direct/e60ef8499e5d4797ab99857c0883dabd.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 78
本专栏主要深入探讨各种数据库技术,不限于MySQL、SQL Server、PostgreSQL、MongoDB、Oracle,从基础架构优化到项目实践,从性能调优到安全合规。
AI论道
失败不要紧,如果不坚持,那永远是失败,坚持了就可能成功!
展开
-
MySQL死锁
两个以上的会话在抢占资源过程中,产生互相等待的情况。死锁建立在锁等待的基础上,session A 获取id=1的写锁,session B 获取id=2的写锁,此时由于索引不同,顾不会发生锁等待现象;当session A 尝试获取id=2的写锁时,由于id=2已经被session A获取,此时产生锁等待,由于 sessionA 和 session B 同时都在锁等待状态,产生了等待对方释放锁,故会产生死锁。当 B 进入 锁等待后就直接报死锁异常。原创 2016-06-14 21:56:49 · 1586 阅读 · 0 评论 -
MySQL架构与锁
MySQL支持多种引擎,主流使用的引擎是InnoDB,其次是MyISAM,特殊情况下使用Memory。原创 2016-06-06 15:06:13 · 2574 阅读 · 0 评论 -
MySQL触发器
例子:当往表中插入数据时,此时表发生了改变,现在想要在每次插入数据前检测所有的入参是否都是小写。此时就可以用触发器检测。经上面分析得知,使用一个基本的触发器,至少表要发生改变,还要满足一个被触发的事件。表的每行,每当插入数据之后就查询这条订单明细的价格赋值给变量。将 更新触发器 改为 delete触发器。此时查询价格为30,说明OLD表触发的是原始数据值。是一张虚表,记录着被插入数据的行,因此能在。将插入后触发器改为更新后的触发器,只需改动。表中获取每次插入的数据。删除之前的SQL数据。原创 2016-05-19 13:50:43 · 1900 阅读 · 1 评论 -
MySQL游标
对查询的结果集进行前一行或后一行类似的操作时就可以使用到游标。declare 游标名称 cursor for 查询语句;– xx名称,打开游标后抓取每行,将结果赋值给name。– 对查询的结果集(即游标)进行检索行至变量提供使用。create procedure 存储过程名称()drop procedure 存储过程名称;fetch 游标名称 into name;为1的订单明细名称的结果集作为游标。call 存储过程名称;close 游标名称;open 游标名称;原创 2016-05-15 22:29:31 · 373 阅读 · 1 评论 -
MySQL存储过程
使用多条语句完成业务的操作。简单的定义存储过程就是多条SQL的集合。declare 变量名称 变量类型 [default value]:如果用命令行学习,在写多行SQL时 使用。DROP PROCEDURE 存储过程名称。使用控制流程,实现复杂的存储过程。可通过标签的形式调用循环,与。原创 2016-05-13 16:22:35 · 4040 阅读 · 1 评论 -
MySQL分类操作
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [库名.]表名(表的结构定义) [表选项]alter table [数据库名.]表名 change [column] 旧字段名 新字段名 数据类型;alter table [数据库名.]表名 modify [column] 字段名 新的数据类型;alter table [数据库名.]表名 ADD UNIQUE [索引名] (字段名)alter table [数据库名.]表名 ADD INDEX [索引名] (字段名)原创 2016-05-03 10:15:15 · 4001 阅读 · 1 评论 -
100个MySQL优化技巧和提示
人们一直在推动MySQL发展到它的极限。这里是100条调节和优化MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技巧。一、MySQL。原创 2016-03-17 15:34:08 · 325 阅读 · 0 评论 -
解析MySQL数据库性能优化的六大技巧
数据库表表面上存在索引和防错机制,然而一个简单的查询就会耗费很长时间。Web应用程序或许在开发环境中运行良好,但在产品环境中表现同样糟糕。如果你是个数据库管理员,你很有可能已经在某个阶段遇到上述情况。因此,本文将介绍对MySQL进行性能优化的技巧和窍门。1.存储引擎的选择如果数据表需要事务处理,应该考虑使用InnoDB,因为它完全符合ACID特性。如果不需要事务处理,使用默认存储引擎MyI原创 2016-03-17 15:29:03 · 387 阅读 · 1 评论 -
MySQL索引类型总结和使用技巧以及注意事项
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:代码如下:CREATE TABLE mytable(ID INT NOT NULL, username VARCHAR(16) NOT NULL );我们随机向里面原创 2016-03-17 15:23:15 · 250 阅读 · 0 评论 -
MySQL高可用浅析
对于多数应用来说,MySQL都是作为最关键的数据存储中心的,所以,如何让MySQL提供HA服务,是我们不得不面对的一个问题。当master当机的时候,我们如何保证数据尽可能的不丢失,如何保证快速的获知master当机并进行相应的故障转移处理,都是需要我们好好思考的。这里,将结合这段时间做的MySQL proxy以及toolsets相关工作,说说我们现阶段以及后续会在项目中采用的MySQL HA方案原创 2016-03-17 14:12:54 · 394 阅读 · 1 评论 -
数据库索引详解
在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别(想想小时候查字典),它是用于提高数据库表数据访问速度的数据库对象。A)索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。B)对于非聚集索引,有些查询甚至可以不访问数据页。C)聚集索引可以避免数据插入操作集中于表的最后一个数据页。D)一些情况下,索引还可用于避免排序操作。当然,众所周知,虽然索引可以提高查询速度,但是它们也会导致数据库系统更新数据的性能下降,因为大部分数据更新需要同时更新索引。原创 2016-03-17 14:07:51 · 250 阅读 · 0 评论 -
MySQL常用引擎详解
(一)myisam存储引擎myisam的引擎的物理结构:包括三种文件:.frm.myd .myi三种。myisam特有的特性:(1)可以支持将数据文件和索引文件放在不同的地方,以达到性能优化的目的。[root@rhel131mysql]# mkdir -p /tmp/mysql/data[root@rhel131 mysql]# chown-R mysql.原创 2016-03-09 16:07:09 · 595 阅读 · 1 评论 -
MySQL基本检索
安装MySQL和使用连接数据库。新建一张学生表student,列分别是id、名称name、年龄age、学生信息info。CHARSET。原创 2016-03-07 17:26:26 · 474 阅读 · 1 评论 -
MySQL数据包导入或接受失败异常处理
在我们数据库的迁移和传输中,尤其是java开发的数据传输软件,经常会遇到传输失败的问题,一般错误如下提示信息: discription: 插入失败,error msg[插入失败,异常信息如下[id=460025409051,error msg[PreparedStatementCallback; SQL [INSERT INTO LC_InterimBulletin(Involve原创 2016-03-07 10:21:10 · 856 阅读 · 1 评论 -
MySQL字符集设置
一、 MySQL字符集设置(1)系统变量:– character_set_server:默认的内部操作字符集– character_set_client:客户端来源数据使用的字符集– character_set_connection:连接层字符集– character_set_results:查询结果字符集– character_set_database:当前原创 2016-03-03 13:55:54 · 1979 阅读 · 0 评论 -
MySQL在服务器异常断电后,无法重启解决办法
mysql在服务器重启后,无法正常启动解决办法:1.第一个是立即关机 使用命令 shutdown -h now 关机,关机后在硬启动,进程就停止了。2.mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak改名备份后在执行:# service mysqld startmv /var/lib/mysql/mysql.sock原创 2016-02-17 16:25:25 · 3093 阅读 · 1 评论 -
MySQL主键重复问题解决 Duplicate entry ‘787192513‘ for key ‘PRIMARY‘
Mysql导入大量数据时,会报如下错误,主键重复,不能再继续执行。 Query:INSERT INTO `FNDCN_MNG` VALUES(787390578, 1, '杨明', 95585, '2015-06-08', '招募说明书', 80100, NULL, '1', NULL, '3', '2015-06-29', NULL, '1', ' 杨明先生,中央财经大学硕士研原创 2016-02-16 17:34:45 · 30623 阅读 · 1 评论