![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
要争气
人生来平凡,因奋斗进取而不凡。
展开
-
Mysql 利用group by 分组排序
MySql的group by与oracle有所不同,查询得字段可以不用写聚合函数,查询结果取得是每一组的第一行记录。利用上面的特点,可以利用mysql实现一种独特的排序;首先先按某个字段进行order by,然后把有顺序的表进行分组,这样每组的成员都是有顺序的,而mysql默认取得分组的第一行。从而得到每组的最值。最近工作用的表有这样一个需求,ip字段有重复,取最后时间更新的ip。原创 2015-12-21 19:34:34 · 27859 阅读 · 4 评论 -
使用PowerDesigner设计权限管理数据表
我使用的powerdesigner版本是16.5,不同版本界面可能有所区别。以管理员身份打开pd:创建physical data model, Mysql先选择4.0(不要选择Mysql50,因为不能创建database,先选择4.0最后改为50版本)右键如下区域--new--Database 创建一个db_test的数据库原创 2017-08-18 14:51:19 · 3609 阅读 · 0 评论 -
mysql中tinyint smallint int和bigint的区别
tinyint: -2^7 ~ 2^7-1(-128 到 127)smallint-2^15 ~ 2^15-1(-32768 到 32767)int(integer)-2^31 ~ 2^31-1 (-2,147,483,648 到 2,147,483,647)bigint-2^63 ~ 2^63-1 (-9223372036854775808原创 2017-08-17 17:16:26 · 567 阅读 · 0 评论 -
【转】mysql 5.5.x zip直接解压版安装方法
这篇文章主要介绍了mysql 5.5.x zip直接解压版安装方法 ,需要的朋友可以参考下。到官网下载mysql-5.5.10-win32.zip,然后将mysql解压到任意路径,如:C:\mysql-5.5.10-win32打开计算机->属性->高级系统设置->环境变量,新建一个环境变量,变量名为:MYSQL_HOME,变量值为你的mysql根目录,如:C:\mysql...转载 2018-12-12 11:13:50 · 1330 阅读 · 0 评论 -
学会数据库读写分离、分表分库——用Mycat,这一篇就够了!我转的
系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。希望通过这篇文章的介绍,能学会Mycat的使用。安装Mycat官网:http://www.mycat.io/可以了解下Mycat的背...转载 2019-01-31 18:11:30 · 196 阅读 · 0 评论 -
MySQL建表时的四种Key
MySQL中有四种Key: Primary Key, Unique Key, Key 和 Foreign Key。除了Foreign Key最好理解外,其他的都要区分一下。剩下的三种都要在原表上建立索引。Primary Key和Unique Key之间的区别晚上说的最多。Primary Key的提出就是为了唯一标示表中的字段,就像我们的身份证号一样。此外,所有字段都必须是not...转载 2019-01-30 15:13:15 · 2382 阅读 · 0 评论 -
Mysql中的key和index的区别
嗯这确实是比较容易混淆的地方。在我们使用MySQL中可能压根不会注意这个问题,因为大多数情况下他们展示出来的效果都差不多,但是还是不能将他们划等号(至少理论上是这样)索引(index)和约束(key)的区别主要在于二者的出发点不同,索引(index)负责维护表的查找和操作速度,约束(key)负责维护表的完整性。而有这个困惑的话,很可能是由于MySQL中有一个奇怪现象: MySQL中的索...转载 2019-01-30 15:14:28 · 1384 阅读 · 0 评论 -
MySQL B+树索引和哈希索引的区别
二者区别备注:先说下,在MySQL文档里,实际上是把B+树索引写成了BTREE,例如像下面这样的写法:CREATE TABLE t(aid int unsigned not null auto_increment,userid int unsigned not null default 0,username varchar(20) not null default ‘’,deta...转载 2019-01-30 17:52:09 · 236 阅读 · 0 评论 -
MySQL的btree索引和hash索引的区别
hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引...转载 2019-01-30 18:07:17 · 86 阅读 · 0 评论 -
MySQL索引原理及使用
一 介绍为何要有索引?一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。什么是索引?索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表...转载 2019-01-31 10:38:48 · 249 阅读 · 0 评论 -
数据库中的索引技术——哈希索引
数据库中的索引技术——哈希索引1、哈希索引哈希索引(hash index)基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。对于hash相同的,采用链表的方式解决冲突。类...转载 2019-01-31 11:20:13 · 2226 阅读 · 0 评论 -
MYSQL 主从复制
一 复制的优点和复制过程:优点:1 主库宕机可以切换到从库上服务;2 可以在从库上执行查询,减轻主库的压力;3 可以在从库上进行备份,减轻主库的压力;过程:主库把二进制日志中的更新事件发送给从库,从库把事件保存到中继日志中,读取中继日志中的事件进行执行,使得从库与主库的数据一致。二 主从复制的架构1 一主多从:一个主库多个从库,主库进行写入操作从库进行读取操作,读写分离。由于主库需...原创 2016-02-16 19:21:45 · 416 阅读 · 0 评论 -
深入浅析Mysql联合索引最左匹配原则
这篇文章主要介绍了Mysql联合索引最左匹配原则,使用联合索引的好处多多,具体内容详情大家跟随脚本之家小编一起学习吧前言之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,最近面试时和面试官交流,发现遗漏了些东西,这里自己整理一下这方面的内容。最左前缀匹配原则在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左...转载 2019-07-26 10:20:18 · 462 阅读 · 2 评论 -
Mysql常见四种索引的使用
提到mysql优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一下mysql常见的四种索引一. 四种索引(主键索引/普通索引/全文索引/唯一索引)1.索引的添加1.1主键索引的添加当...转载 2019-07-26 10:22:10 · 226 阅读 · 0 评论 -
MySql修改时间字段
Mysql时间加减函数为date_add()、date_sub()定义和用法DATE_ADD() 函数向日期添加指定的时间间隔。DATE_SUB() 函数向日期减少指定的时间间隔。语法DATE_ADD(date,INTERVAL expr type)DATE_SUB(date,INTERVAL expr type)date 参数是合法的日期表达式。expr参数是转载 2017-10-20 18:09:44 · 17698 阅读 · 0 评论 -
MySQL子查询注意的一个地方
Mysql子查询要有别名,否则报错;SELECT * FROM (SELECT id FROM A) 报错;SELECT * FROM (SELECT idFROM A) a 正常运行;原创 2017-09-11 10:16:24 · 465 阅读 · 0 评论 -
Mysql 关联查询得where条件
通常,关联查询时候,把where放在关联条件on之后。但是数据量比较大的时候,有时候性能很低。如果可以把where放在内表里,尽量放在内表里,尤其是主表里,大数据量的时候可以提高很多查询时间。原创 2015-12-24 21:44:17 · 3050 阅读 · 0 评论 -
MYsQL优化SQL
一 :explain 分析sql的执行计划explain select语句,会查询出select语句的执行计划,找出低效sql然后进行优化。主要的三个字段:type :访问类型,key:索引,rows:扫描行数。type 的值为system const的时候性能最高,在使用主键和唯一索引进行查询时候最多返回一条记录的时候会出现。为all的时候,表示全表扫描,不使用索引,性能最低。原创 2016-01-10 12:01:17 · 374 阅读 · 0 评论 -
MySql获取随机行
rand()函数返回0-1的随机数,我们可以利用order by rand()获取随机行SELECT * FROM a ORDER BY RAND() LIMIT 1线随机排序,再获取前1行。原创 2016-01-10 12:05:11 · 1084 阅读 · 1 评论 -
Mysql 使用with rollup对聚合结果进行聚合
使用的表:CREATE TABLE `b` ( `eid` INT(11) DEFAULT NULL, `month` DATETIME DEFAULT NULL, `sals` DECIMAL(10,2) DEFAULT NULL) ENGINE=INNODB DEFAULT CHARSET=latin1当只有一个分组条件的时候,对整个表原创 2016-01-10 12:26:49 · 2256 阅读 · 0 评论 -
MySql的锁问题和事物
锁是计算机解决多线程并发访问同一资源的一种机制。mysql的不同存储引擎支持的锁有所不同。MyIsam和Memory支持表锁,InnoDB支持行锁和表锁。原创 2016-01-10 14:01:53 · 748 阅读 · 0 评论 -
Mysql 与聚合函数在一起时候where条件和having条件的过滤时机
where 在聚合之前过滤当一个查询包含了聚合函数及where条件,像这样的情况select max(cid) from t where t.id这时候会先进行过滤,然后再聚合。先过滤出ID《999的记录,再查找最大的cid返回。having 在聚合之后过滤having在分组的时候会使用,对分组结果进行过滤,通常里面包含聚合函数。SELECT ip,MAX(原创 2015-12-25 20:41:36 · 6510 阅读 · 0 评论 -
Mysql 使用分区
mysql原创 2016-02-14 19:47:48 · 475 阅读 · 0 评论 -
MYSQL优化
一 使用Explain分析SQL的执行计划,找出低效SQL进行优化。二 使用索引 ,优化查询。MySql的索引可以对索引字段值为null的情况使用索引,这点与ORACLE不同。有些情况,索引不会被应用:1 联合索引必须出现最左边字段,否则不会使用索引;2 使用like查询时候,左边不能出现%,否则不会使用索引;3 出现否定条件 <> !< !> not i...原创 2016-02-15 20:04:05 · 380 阅读 · 0 评论 -
MYSQL集群
一 mysql集群和节点集群是一组节点的组合。节点类型:管理节点,sql节点,数据节点。管理节点:用来管理其他的节点,只能有一个。SQL节点:是应用程序和数据节点的桥梁,用来存储表结构。SQL节点数量越多,单个SQL节点的负载越小,系统性能越好。数据节点:用来存储数据,存储引擎只能是NDB,否则无法存储数据。每个数据节点都可以配置多个镜像,当单个数据节点出故障的时候,只要镜像正原创 2016-02-17 19:11:40 · 577 阅读 · 0 评论 -
MySql导出导入表和数据
数据库或表的导入导出:如果无法使用mysqldump,则需要对mysqldump像mysql连接一样做连接到bin目录下mysqldump -uroot -p mysql1 t1 > t1.sqlmysql -uroot -p mysql1表数据的导入导出:select * from mysql1.t1 into outfile '/tmp/t1原创 2016-02-26 18:37:35 · 996 阅读 · 0 评论 -
MySQL联合索引最左原则
联合索引A,B,C,D只要出现A,不管顺序如何都会使用索引;只要没有A,就不会使用索引;如 A,B A,C D,B,C,A, C,A 等都会使用索引;B,C,D 不会使用索引;原创 2017-08-16 10:56:40 · 2396 阅读 · 0 评论 -
关联修改数据
我们需要修改表里的数据,但是需要关联到其他表,来获取值,此时可以使用关联修改UPDATE A t1 INNER JOIN B t2 ON t1.`sn`=t2.snSET t1.`id`=t2.id A表有sn,B表也有sn,但是A表要存B的id,可以用以上修改语句原创 2017-08-10 17:31:26 · 828 阅读 · 0 评论 -
mysql 悲观锁和乐观锁
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memca转载 2017-08-29 14:56:57 · 236 阅读 · 0 评论 -
MySQL索引失效的几种场景
我们都知道建立索引能够提高查询效率,那么是不是任何情况下都能提高呢,当然不是的的,下面我们就来列举一些常见的索引失效的场景。借用上一篇文章的dm_person_info表在card_code列没加索引的时,查询时间如下,大概都在0.07秒。我们来加上索引试试,加上后查询效率高了许多。在正确使用索引的情况下,查询一行数据的时间不到10毫秒,所以显示0.00 sec ....转载 2019-07-26 10:27:59 · 2609 阅读 · 0 评论