
sql
文章平均质量分 72
mitsuhide1992
软件研发工程师
展开
-
Mysql cluster初学
Mysql cluster 总览MySQL cluster中有三种节点: 管理节点、数据节点和SQL节点。 群集中的某计算机可能是某一种节点,也可能是两种或三种节点的集合。 管理节点(也可以称管理服务器) 主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送原创 2016-04-26 23:14:34 · 656 阅读 · 0 评论 -
LeetCode 185. Department Top Three Salaries
select c.Name, a.Name, a.salary from Employee a, ( select ifnull(b.c,0) as c,a.Id from Employee a left join ( select count(1) as c,a.Id from Employee a,(select DepartmentId,salary原创 2016-04-04 10:20:18 · 1287 阅读 · 0 评论 -
Mysql插入中文乱码
需要utf8编码才能插入中文查看数据库编码show variables like ‘%char%’ 这样的结果才对修改编码首先需要改mysql的默认编码:在my.ini里[mysqld] character-set-server=utf8[client] default-character-set=utf8然后重启mysql服务然后要改数据库编码: 注意,如果mysql的默认编码设置成utf8了原创 2016-05-24 19:08:18 · 475 阅读 · 0 评论 -
Mysql安装
1、下载后解压文件 2、将my-default.ini文件拷贝一份并重命名为my.ini 修改如下(加入mysql的路径和data的路径,如果data路径没有需要新建):basedir=F:\programming\mysql\mysql-5.7.11-winx64 datadir=F:\programming\mysql\mysql-5.7.11-winx64\data3、配置环境变量,把b原创 2016-04-03 23:28:07 · 599 阅读 · 0 评论 -
mysql sql整理
查询两列不重复的记录数select count(distinct region_id,city_id) from prt_prd_tml_bizhall_d;原创 2016-05-24 20:40:38 · 392 阅读 · 0 评论 -
mysql日期时间操作
MySQL 为日期增加一个时间间隔:date_add() set @dt = now();select date_add(@dt, interval 1 day); - 加1天select date_add(@dt, interval 1 hour); -加1小时select date_add(@dt, interval 1 minute); - 加1分钟select date_add转载 2016-12-23 10:29:03 · 1164 阅读 · 0 评论 -
SQL 基础语法整理
update select 之后的数据update B set B_account = b.s_amount from B a, ( select sum(amount) as s_amount,pay_id from A group by pay_id ) b where a.pay_id = b.pay_idselect name from (select name,avg(score原创 2016-03-31 09:52:07 · 780 阅读 · 0 评论 -
SQL 基本知识
SQL执行顺序1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选分组; 6、select计算所有的表达式; 7、使用order by对结果集进行排序。原创 2016-06-01 10:43:08 · 363 阅读 · 0 评论 -
关系型数据库与NOSQL数据库的区别
关系型数据库的性能非常高,但是它毕竟是一个通用型的数据库,并不能完全适应所有的用途,具体来说它并不擅长以下处理:大量数据的写入处理。为有数据更新的表做索引或表结构(schema)变更字段不固定时应用对简单查询需要快速返回结果的处理(1)大量数据的写入处理:在数据读入方面,由复制产生的主从模式(数据的写入由主数据库负责,数据的读入由从数据库负责),可以比较简单地通过增加从数据库来实现规模化。但是,在数转载 2016-07-27 11:44:11 · 898 阅读 · 1 评论 -
Mysql 5.7修改密码
MAC OS,MYSQL 5.7service mysqld stop(Mac上不管用,直接杀进程)mysqld_safe --skip-grant-tables &输入 mysql -uroot -p 回车进入use mysql;update user set password=PASSWORD("newpass") where user="root";// 5.7上应该是下面的,因为5.7中字段原创 2016-07-12 19:40:42 · 2652 阅读 · 0 评论 -
查询性能优化
优化数据访问查询性能低下的最基本的原因是访问的数据太多,对于低效的查询,可以从下面两个步骤来分析:(1)确认应用程序是否在检索大量超过需要的行,这通常意味着访问了太多的行,但有时候也有可能访问了太多的列。(2)确认MySQL服务器层是否在分析大量超过需要的数据行。一些典型的情况:(1) 查询不需要的列。这样的查询上应该加上LIMIT(2) 多表关联时返回了全部列。应该只取需要的列转载 2016-05-24 14:07:56 · 2565 阅读 · 1 评论 -
数据库事务、锁
事务特征第一、原子性,即不可分割性; 第二、一致性,保证数据更新前后与业务的一致性; 第三、隔离性,多个事务不相影响; 第四、持久性,事务提交后数据将永久存储杂数据库。隔离级别读未提交 一个事务在修改或新增后,另一个事务可以读取上个事务未提交的数据,会产生“脏读”。 读提交(oracle默认隔离级别) 一个事务在修改或新增后,如果未提交,另外一个事务不能去读。只能读取已经提交事务的数据。原创 2016-04-17 11:18:16 · 944 阅读 · 0 评论 -
Mysql索引原理
索引的本质索引(Index)是帮助MySQL高效获取数据的数据结构 最基本的查询算法是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法例如二分查找(binary search)、二叉树查找(binary tree search)等。稍微分析一下会发现,每种查找算法都只能应用于特定的数据结构之上,例如二分查找转载 2016-03-18 19:33:31 · 426 阅读 · 0 评论 -
为什么MyISAM是表锁
MyISAM和InnoDB是MySQL两种最常用的存储引擎,最近几次面试都有问到区别,感觉答得不好,今天专门抽时间研究下。设计目标InnoDB设计目标是处理大容量的数据,而MyISAM追求的是性能,两者产生的差异也是基于这点。 InnoDB是MySQL的默认存储引擎。事务处理InnoDB支持事务和外键,MyISAM不支持。MyISAM强调的是性能,InnoDB支持的功能更加完整。InnoDB支持事务转载 2016-05-15 16:33:28 · 5653 阅读 · 8 评论 -
SQL 索引最左前缀原理
表结构和索引列假设数据库中表是这样的: 我们只考虑一张表employees.titles: 索引是(emp_no,title,from_date)SHOW INDEX FROM employees.titles; +--------+------------+----------+--------------+-------------+-----------+-------------+---转载 2016-05-06 13:42:51 · 11714 阅读 · 0 评论 -
SQL优化
问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现转载 2016-03-29 17:15:41 · 12063 阅读 · 4 评论 -
MYSQL 基础整理
MySQL实现了四种通信协议TCP/IP协议,通常我们通过来连接MySQL,各种主要编程语言都是根据这个协议实现了连接模块Unix Socket协议,这个通常我们登入MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件,文件的存放位置在配置文件中有定义,值得一提的是,这是所有协议中最高效的一个。Share Memory协议,这个协议一般人不知道,肯定也没用过,因为这个只有原创 2016-06-01 10:44:59 · 360 阅读 · 0 评论 -
MYSQL存储引擎InnoDB和myisam区别
InnoDBMysql5.5之后的默认存储引擎 支持事务 行锁 insert delete update只是针对一行的,所以在insert update delete很多的情况下优先选innoDB AUTO_INCREMENT 如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。自动增长计数器仅被存储在主内存中原创 2016-04-17 22:30:20 · 456 阅读 · 0 评论 -
Mysql架构与历史
MySQL逻辑架构最上层的结构不是Mysql独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的结构,比如连接处理、授权认证、安全等。第二层是Mysql中比较核心的部分。大多数的Mysql核心功能都在这一层。包括查询解析、分析、优化、缓存以及所有的内置函数,所有跨存储引擎的功能都在这一层实现,存储过程、触发器、视图等。第三层包含了存储引擎。存储引擎负责Mysql中数据的存储和提取。服务器通转载 2016-05-23 13:58:33 · 1598 阅读 · 0 评论 -
创建高性能的索引
索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。 在数据量小且负载较低时,不恰当的索引对性能的影响可能还不明显,但是当数据量逐渐增大时,性能会急剧下降。索引可以包含一个或者多个列的值。 如果索引包含了多个列,那么列的顺序也十分重要。 因为MySQL只能高效地使用索引的最左前缀列(B+树的数据结构决定的)。 创建一个包含两个列的索引和创建两个包含一列的索引转载 2016-05-23 14:35:08 · 1839 阅读 · 0 评论