
Mysql
文章平均质量分 55
l498948617
这个作者很懒,什么都没留下…
展开
-
Catalog与Schema
按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Ca转载 2016-03-10 22:31:57 · 617 阅读 · 0 评论 -
mysql 5.5 开启慢查询日志以及日志分析
优化MySQL最重要的一部分工作是先确定”有问题”的查询语句。只有先找出这些查询较慢的sql查询(执行时间较长),我们才能进一步分析原因并且优化它。MySQL为我们提供了Slow Query Log记录功能,它能记录执行时间超过了特定时长的查询。分析Slow Query Log有助于帮我们找到”问题”查询。记录slow queries首先,我们需要查看mysql server版本号,以及是转载 2014-11-18 14:33:54 · 885 阅读 · 0 评论 -
SQL优化——百万数据查询优化
1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下: ●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。 ●在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。 ●在条件转载 2014-12-31 09:00:54 · 468 阅读 · 0 评论 -
《SQL反模式》之读书计划
刚刚进入2015年一月,最近因为工作的需要,学习了很多数据库,特别是sql方面的知识。2014年的年底,利用闲暇时间将经理的《SQL学习指南》认真阅读了一遍,感受颇深,是一本学习数据库特别是深度认识SQL的一本好书,里面从数据库的原理出发,介绍了基本SQL语句的执行原理和不同数据库之间的差异,是一本承上启下的经典书籍。因为工作中需要的对SQL语句的调优,所以公司希望侧重点在SQL的优化方面。查原创 2015-01-03 19:50:49 · 506 阅读 · 0 评论 -
Oracle与MySQL的区别(待扩展)
Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。1.组函数用法规则mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错eg:select name,count(money) from user;这个放在mysql转载 2014-05-15 16:46:49 · 467 阅读 · 0 评论 -
【ORA-02049】超时分布式事务处理等待锁 解决方法
(1)以sys用户登陆数据库查询死锁:SQL> select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object); (2)然后使用一下语句查找被死锁的语句SQL> select sql_t转载 2014-10-13 16:33:17 · 1123 阅读 · 0 评论 -
in与exist , not in与not exist 的区别
in和exists in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。 如果查询的两个表大小相当,那么用in和exists差别不大。 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in: 例如:表A(小表),表转载 2014-04-28 13:10:20 · 529 阅读 · 0 评论 -
group_concat函数详解及其实例
MySQL中group_concat函数完整的语法如下:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码 select * from aa; +------+------+| i转载 2014-03-06 14:33:14 · 1086 阅读 · 0 评论 -
mysql存储性能优化
1、使用索引每张表最多可以做16个索引,支持多列索引和全文索引建立索引:create index index_name on users(username);查看索引:show index from users;是一把双刃剑,建不建立索引,主要看表的功能,找好一个平衡点,。2、使用explain分析查询在查询在用explain explain select *转载 2014-03-12 11:32:34 · 717 阅读 · 0 评论 -
insert into select 与 create table as的用法和区别
insert into table1(columns1,columns2) select columns1,columns2 from table2;从table2中查询的结果插入到table1中,前提是table1和table2已经存在; oracle中不支持 select columns1 into table2 from table1;转载 2013-12-23 16:47:08 · 5858 阅读 · 1 评论 -
Mysqldump参数大全(参数来源于mysql5.5.19源码)(键人岐)
参数参数说明--all-databases , -A导出全部数据库。mysqldump -uroot -p --all-databases--all-tablespaces , -Y导出全部表空间。mysqldump -uroot -p --all-databases --all-tablespaces--no-tablespaces , -y不导出任转载 2013-11-13 10:13:08 · 517 阅读 · 0 评论 -
利用ProcessExplorer工具查找、杀除占用cpu资源的sql线程
打开ProcessExplorer,找到oracle进程双击oracle进程,如图所示,打开"Threads"页签,按照cpu进行降序排列,观察该线程对应的TID和ServiceService内填写的是以"OracleService"开头的即为Oracle服务的线程,记录下它TID在sqlDeveloper中执行sql脚本,查找TID对应的sql语句(SQL_TEXT),判断该线程是否是因原创 2014-11-17 15:50:02 · 1262 阅读 · 0 评论 -
各种数据库的delete from和别名(mysql/derby/oracle/postgresql)
今天发现mysql不认部分delete SQL语句,整理了一下各个数据库中delete from的语法比较 mysqlderbyoraclepostgresqldelete from test where id =1√ √ √ √转载 2015-03-02 15:18:51 · 612 阅读 · 0 评论 -
mysql存储过程---返回列表数据需要用到游标
1. 使用存储过程的优点有:(1)存储过程在服务器端运行,执行速度快。(2)存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。(3)确保数据库的安全。使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。2.创建存储过程可以使用create pr转载 2015-05-13 23:25:35 · 1560 阅读 · 0 评论 -
MySQL权限管理
一、MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界。比如只允许你执行select操作,那么你就不能执行update操作。只允许你从某台机器上连接mysql,那么你就不能从除那台机器以外的其他机器连接mysql。 那么Mysql的权限是如何实现的呢?这就要说到mysql的两阶段验证,下面详细介绍:第一阶段:服务器首先会转载 2015-04-24 15:12:44 · 408 阅读 · 0 评论 -
事务并发、事务隔离级别
并发问题可归纳为以下几类: A.丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖(A和B事务并发执行,A事务执行更新后,提交;B事务在A事务更新后,B事务结束前也做了对该行数据的更新操作,然后回滚,则两次更新操作都丢失了)。B.脏读:一个事务读到另一个事务未提交的更新数据(A和B事务并发执行,B事务执行更新后,A事务查询B事务没有提交的数据,B事务回滚,则A事务得到的数据不转载 2015-04-07 12:51:03 · 394 阅读 · 0 评论 -
《SQL反模式之“对未知的恐惧”》
对NULL的探讨1、select A || B from table;若字段A或者B有一个为null,则A||B结果为null;2、NULL的用处(辨别悬空值):(1)代替不确定的值(2)代替可能没有意义的,不合适的值(3)当传入无效参数时的返回值(4)外查询时,未匹配列的占位符3、对于大多数数据库,Null是一个特殊值,不同于0、false或者空字符串,但是在or原创 2015-01-12 11:41:24 · 803 阅读 · 0 评论 -
《SQL反模式之“模棱两可的分组”》
SQL的“单值规则”1、select product_id,MAX(date_reported) as latest,bug_id from Bugs join BugsProducts USING (bug_id) group by product_id;很多时候,我们觉得返回的cc列的bug_id值应该是查询表中max(date_reported)对应的那条数据原创 2015-01-12 14:41:26 · 738 阅读 · 0 评论 -
《SQL反模式之“意大利面条式查询”》
对SQL简约率的探讨1、简约率:当你有两个相互竞争的理论能得出同样的结论,那么简单的那个更好。2、当我们需要查询多个表的多个字段时,可以不必局限于一个复杂的sql,而是可以采用分而治之的方法:比如,采用union单独查询结果集,以免生成笛卡尔积影响查询结果的正确性。3、使用sql自动生成sql,批量生成sql,防止复杂的sqlSELECT CONCAT('UPDATE Invent原创 2015-01-12 17:28:31 · 586 阅读 · 0 评论 -
MySQL存储引擎比较
MySQL常用的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。 InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差转载 2015-01-13 13:30:32 · 449 阅读 · 0 评论 -
MYSQL之“EXPLAIN语句简介”
网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上。我们知道MySQL的性能优化方法,一般有建立索引、规避复杂联合查询、设置冗余字段、建立中间表、查询缓存等,也知道用EXPLAIN来查看执行计划。但对MySQL复杂查询语句执行过程和内部机制,MySQL Optimizer本身所做优化以及查询语句调整对性能所产生的影响及其原因知之甚少。转载 2015-01-14 16:55:01 · 582 阅读 · 0 评论 -
MYSQL API之 WITH ROLLUP
GROUP BY子句允许一个将额外行添加到简略输出端 WITH ROLLUP 修饰符。这些行代表高层(或高聚集)简略操作。ROLLUP 因而允许你在多层分析的角度回答有关问询的问题。例如,它可以用来向OLAP (联机分析处理) 操作提供支持。设想一个名为sales 的表具有年份、国家、产品及记录销售利润的利润列:CREATE TABLE sales( year INT原创 2015-01-15 16:28:46 · 686 阅读 · 0 评论 -
Mysql和Oracle数据库concat()函数
一、函数的使用参数不同Mysql支持多个字符串拼接:CONCAT(str1,str2,…) Oralce只支持两个字符串的拼接,若想拼接多个字符串可以嵌套使用concat CONCAT(str1,str2) 二、参数中有Null的处理方式不同Mysql:返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。Oralce:如有原创 2015-02-12 14:53:56 · 1871 阅读 · 0 评论 -
mysql 日志 (键人岐)
1.错误日志(error log)mysql>show variables like 'log-error';可以得到log-error变量的值,即错误日志文件的详细位置,默认情况下,日志会被保存到数据库目录数据子目录下,文件名是服务器主机名.err文件,如果需要设定错误日志文件名,可以在配置文件my.cnf中设定参数log-err2.普通日志(general log)默认情况下,转载 2013-11-19 11:11:27 · 1278 阅读 · 0 评论