数据库
Yqq__00
这个作者很懒,什么都没留下…
展开
-
异常信息为: Illegal mix of collations for operation 'concat'
mysql 代码没发现问题,但是报Illegal mix of collations for operation 'concat'解决办法,改一下字符编码。http://www.fx114.net/qa-108-247011.aspx原创 2017-07-12 18:16:02 · 4357 阅读 · 0 评论 -
Mysql命令desc:获取数据表结构
使用MySQL数据库desc 表名时,我们看到Key那一栏,可能会有4种值,即 ' ','PRI','UNI','MUL'。如果Key是空的,那么该列值的可以重复,表示该列没有索引,或者是一个非唯一的复合索引的非前导列;如果Key是PRI,那么该列是主键的组成部分;如果Key是UNI,那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL);如果Key是MUL,那么该列的值转载 2016-10-20 14:42:19 · 1467 阅读 · 0 评论 -
Innodb 锁的介绍
InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。innodb 中的锁是跟索引有关的,没有索引就不给上锁recode / gap/next-key locks1、recode :是锁住某一行记录2、Gap Lock会锁住某一段范围中的记录;例子:mysql> select * from ts_colum转载 2016-10-20 14:40:42 · 288 阅读 · 0 评论 -
MySQL 5.5 新增SIGNAL异常处理
http://blog.csdn.net/yueliangdao0608/article/details/7817611转载 2016-10-19 16:42:10 · 501 阅读 · 0 评论 -
MySQL定义异常和异常处理方法
http://www.2cto.com/database/201410/341132.html自定义异常处理例子:DECLARE CONTINUE HANDLER FOR NOT FOUND SET V_NOT_FOUND = 1;插入的时候出现not found的情况 设置变量 V_NOT_FOUND = 1,程序继续。DECLARE EXIT HANDLER转载 2016-10-19 16:24:21 · 2474 阅读 · 0 评论 -
事务的四种隔离级别
◆未授权读取(Read Uncommitted):允许脏读取,但不允许更新丢失。如果一个事务已经开始写数据,则另外一个数据则不允许同时进行写操作,但允许其他事务读此行数据。该隔离级别可以通过“排他写锁”实现。◆授权读取(Read Committed):允许不可重复读取,但不允许脏读取。这可以通过“瞬间共享读锁”和“排他写锁”实现。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事转载 2016-11-08 14:02:34 · 335 阅读 · 0 评论 -
mysql报错提示:Cannot create stored routine
用source执行存储过程文件时报错,ERROR 1607 (HY000): Cannot create stored routine "procedure name" Check warnings但是存储过程在SQLyog中执行是正确的。最后发现文件编码错误。将文件的编码转换了,就能正确执行了。用的方法是将服务器上的文件下载到本地,用Notepad++修改,之后再上传上服原创 2016-11-04 13:33:31 · 2087 阅读 · 0 评论 -
mysql数据库引擎常用面试总结
http://blog.csdn.net/libing13820393394/article/details/48634115剖析Mysql的InnoDB索引http://blog.csdn.net/voidccc/article/details/40077329转载 2016-09-26 14:45:28 · 312 阅读 · 0 评论 -
使用limit效率的问题和优化
LIMIT用来返回SELECT语句的行数。LIMIT取1个或2个数字参数,如果给定2个参数,第一个指定要返回的第一行的偏移量,第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。 LIMIT在可以很方便的返回所需的数据,数据量小(10W以下)时,效率这方面不会有太大的问题,但数据量一大就会导致性能的下降。下面是我的测试数据:都是在20W条记录的数据表中运行实例:sto原创 2016-09-22 14:42:15 · 3304 阅读 · 0 评论 -
msyql的几种变量
前几天遇到一个bug,上网查到的都是举的php例子,是说php中调用存储过程时给in or out插入了多个值,我门公司将php处理mysql这里用一个封装了,我看不到这里的php代码,并且这里也是用了好久的存储过程,出错的可能性应该很小,由于当时操作复杂没能重现bug,定位不到具体的代码,搁置了。 今天,这个bug又出现了,定位准确,查看了存储过程的代码后,发现以前引用原创 2016-05-17 16:08:51 · 408 阅读 · 0 评论 -
msyql get_lock()与RELEASE_LOCK()
select get_lock(key, timeout) select release_lock(key)GET_LOCK(name,time)函数定义一个名称为name、持续时间长度为time秒的锁。如果锁定成功,返回1。如果操作超时,返回0。如果发生错误,返回NULL。(1)get_lock会按照key来加锁,别的客户端再以同样的key加锁时就加不了了,处于等待状态。转载 2016-10-20 16:38:03 · 4233 阅读 · 0 评论 -
Mysql 死锁发生时的详细分析方法
http://www.cnblogs.com/likui360/p/5856114.html像mysql会自动检测死锁,将死锁消除,所以,在死锁发生时,这个方法很好用转载 2016-10-20 16:40:09 · 367 阅读 · 0 评论 -
【MySQL】关于 unauthenticated user的哲学思考
今年双十一遇到一个问题,user里面有unauthenticated usermysql> show processlist;+--------+----------------------+----------------------+-----------+---------+-------+-----------------------------+------------------转载 2016-11-11 17:45:14 · 504 阅读 · 0 评论 -
mysql DELIMITER 问题
由于工作的原因好久没写博客了。今天遇到一个问题,存储过程在线上用source执行报错,但是在测试库就没问题。经查找是DELIMITER与//之间缺少一个空格的原因。DROP PROCEDURE IF EXISTS `SP_TEST`;DELIMITER// CREATE PROCEDURE `SP_TEST`(IN P_RecId INT(11),IN P_OperateType I原创 2017-05-19 13:05:45 · 744 阅读 · 0 评论 -
mysql中tinyint、smallint、int
TINYINT ,字段类型,如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数。TINYINT 型的字段如果不设置UNSIGNED类型,存储-128到127的整数。通常,为了节省空间,应该尽可能的使用最小的整型数据。一个TINYINT型数据只占用一个字节,一个INT型数据占用四个字节。这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很快的。另一方面转载 2016-11-28 11:26:21 · 2727 阅读 · 0 评论 -
MySQL存储IP地址的方法
http://www.jb51.net/article/70243.htmIP转数字函数inet_aton()mysql> selectinet_aton('192.168.1.1'); +--------------------------+| inet_aton('192.168.1.1') |+--------------------------+转载 2016-11-24 14:01:23 · 1337 阅读 · 0 评论 -
mysql distinct注意点
distinct是按照后面所有的字段为维度,去重mysql> SELECT * FROM test_y;+--------+------+------+---------------------+| rec_id | y_id | yy | created |+--------+------+------+---------------------+|原创 2016-11-23 18:12:30 · 546 阅读 · 0 评论 -
MySQL_MySQL 联合索引详解 以及注意事项
http://blog.csdn.net/u010003835/article/details/51563353组合索引,从左到右使用转载 2016-12-12 11:39:14 · 421 阅读 · 0 评论 -
SQL四种语言:DDL,DML,DCL,TCL
1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema.DDL是SQL语言的四大功能之一。用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束DDL不需要commit.CREATE转载 2016-11-15 11:27:11 · 295 阅读 · 0 评论 -
推荐几本学习MySQL的好书
博客文章http://blog.csdn.net/tuntun1120/article/details/53113065博客原作者:赖明星的博客http://mingxinglai.com/cn/转载 2016-11-15 09:44:49 · 3608 阅读 · 0 评论 -
mysql on duplicate key update 的坑
慎用on duplicate key update,当主键冲突之后容易产生死锁。http://chenzhenianqing.cn/articles/1308.html转载 2016-11-02 13:52:48 · 3038 阅读 · 0 评论 -
deadlock found when trying to get lock ;try restarting transaction
http://blog.sina.com.cn/s/blog_4acbd39c01014gsq.htmlinnodb的行锁和解锁都是针对主键索引的。如果查询时根据索引锁表,但更新时却不是通过主键更新,那么等待的解锁查询的进程将会报1213错误,程序里有可能返回一个null值转载 2016-11-11 17:48:10 · 3606 阅读 · 0 评论 -
order by与索引
http://www.cnblogs.com/zhaoyl/archive/2012/05/04/2483513.html索引在where后也在order by后,执行计划使用索引,无需再排序索引不在where后在order by后,执行计划不使用索引,需要再排序一条SQL实际上可以分为三步。1.得到数据2.处理数据 3.返回处理后的数据转载 2016-09-21 10:22:46 · 510 阅读 · 1 评论 -
SQL 优化SQL查询:如何写出高性能SQL语句-- sql执行计划
1、 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。 可见,执行计划并不是固定的,它是“个性化的”。转载 2016-09-21 10:20:04 · 392 阅读 · 0 评论 -
B-tree/B+tree/B*tree
http://blog.csdn.net/hbhhww/article/details/8206846包含了动态查找树的分类,磁盘的读写,B-tree、B+tree、B*tree转载 2016-09-06 11:01:19 · 353 阅读 · 0 评论 -
存储过程
好久没用过存储过程了,今天整理一下。一、定义:存储过程是一组为了完成特定功能的SQL语句的集合,它经编译后存储在数据库中,用户通过指定的调用方法执行之。存储过程具有名称,参数及返回值,并且可以嵌套调用。二、分类:系统存储过程、扩展存储过程、用户自定义存储过程三、优点:快速执行、安全性好、访问统一、命名代码,允许延迟绑定、减少网络通信流量四、存储过程与函数的区别:1.存储过程原创 2015-08-25 14:36:17 · 1037 阅读 · 0 评论 -
游标嵌套
游标可以嵌套。游标嵌套DECLARE CUR_1 CURSOR--第一层游标声明FOR SELECT C_1,C_2 FROM TABLENAMEOPEN CUR_1FETCH NEXT FROM CUR_1 INTO @C_1,@C_2WHILE @@FETCH_STATUESBEGIN DECLARECUR_2 CURSOR--第二层游标声明 F转载 2015-11-06 13:44:47 · 1135 阅读 · 0 评论 -
存储过程简单例子
存储过程简单例子为了方便理解举个简单的例子了解存储过程与一般的存储的区别。 CREATE PROCEDURE NEW_PRODUCT (PROD_ID IN VARCHAR2,PROD_DESC IN VARCHAR2,COST IN NUMBER) AS BEGIN INS原创 2015-11-04 15:23:17 · 326 阅读 · 0 评论 -
游标
SQLSERVER--声明游标--SQL语句填充游标--打开游标--FETCH检索提取的信息--对游标进行修改(更新或删除)--关闭游标--删除游标DECLARE @iNo INT DECLARE @sPatronID VARCHAR(20)DECLARE @sName VARCHAR(30)--声明游标DECLARE cMyCURSOR C原创 2015-09-16 17:51:30 · 367 阅读 · 0 评论 -
truncate与delete的区别
TRUNCATE TABLE tablename truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的可以做一个测试 建一个带有自增字段的表转载 2015-08-28 14:18:04 · 241 阅读 · 0 评论 -
MySQL FIND_IN_SET()
FIND_IN_SET()先举个例子 select FIND_IN_SET('2','1,2');返回2 select FIND_IN_SET('6','1'); 返回0再来具体了解一下应用的情景举个很多博客中引用过的,很经典1、有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文原创 2015-08-26 16:26:16 · 294 阅读 · 0 评论 -
GROUP_CONCAT()用法
GROUP_CONCAT()用法 首先呢,普及一下英文,关爱英文不好的同学。 concat: n.合并多个数组;合并多个字符串 再看一下,手册上说明: 该函数返回带有来自一个组的连接的非NULL值的字符串结果。 比较抽象,难以理解。用大白话翻译一下:这个函数好啊,能将相同的行组合起来,省老事原创 2015-08-26 15:56:35 · 2155 阅读 · 1 评论 -
sql注入的一些整理
sql注入:通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。攻击当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可原创 2015-08-11 09:40:50 · 595 阅读 · 0 评论 -
存储过程-返回值
返回值存储过程的返回值使用 RETURN 语句指定存储过程的返回代码。如果返回值在-1到-99之间,表示没有成功执行,可以通过判断返回值来进行相应的处理。可以用RETURN语句将大于0或者小于-99的整数作为自定义返回值,来表示不同的执行结果。典型代码DECLARE @result INTEXECUTE @result=my_pro【例】创建存储过程,根据读者证号获原创 2015-08-25 14:38:01 · 871 阅读 · 0 评论 -
MYSQL: Cannot delete or update a parent row: a foreign key constraint fails
这可能是MySQL在InnoDB中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。 SET FOREIGN_KEY_CHECKS = 0; 删除完成后设置 SET FOREIGN_KEY_CHECKS = 1; 其他: 关闭唯一性校验 set unique_checks=0;转载 2015-11-26 16:31:55 · 413 阅读 · 0 评论 -
关于MySQL分页几个好的博文
Mysql中分页查询两个方法比较http://www.cnblogs.com/yjf512/archive/2012/10/09/2717102.html结论:SQL_CALC_FOUND_ROWS和COUNT(*)的性能在都使用covering index的情况下前者高,在没使用covering index情况下后者性能高。所以使用的时候要注意这个。后来发先 很多博文都原创 2015-12-28 17:25:51 · 295 阅读 · 0 评论 -
mysq中information_schema
mysql判断表中的列是否存在:select count(*) from information_schema.columns wheretable_schema='库名' and table_name='表名' andcolumn_name='列名'大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库。转载 2016-05-11 09:23:49 · 363 阅读 · 0 评论 -
【mysql】 GROUP BY col ORDER BY NULL
在使用group by col的时候,mysql 会自动order by col ,在只需要分组不需要排序的情况下,可用使用可以使用GROUP BY col ORDER BY NULL提升执行效率,仅仅对col列分组,而不排序。mysql> select * from testy;+--------+---------+---------------------+| rec_i原创 2016-09-03 14:56:03 · 2129 阅读 · 0 评论 -
mysql left on 和where中执行顺序
http://www.cnblogs.com/Jessy/p/3525419.html转载 2016-08-31 10:53:15 · 786 阅读 · 0 评论 -
msyql关于大于号和order by
今天遇到一个问题关于大于号和order by的,上班时间简单记录一下,留着再研究http://huangliangfeixu.blog.163.com/blog/static/189747062201141223822710/http://blog.csdn.net/hguisu/article/details/7161981http://blog.itpu原创 2016-05-16 16:02:53 · 396 阅读 · 0 评论