随笔分类 - mysql
somethings about mysql.
摘要:在我们的日常mysql查询中,我们可能会遇到这样的情况: 对表中的所有记录进行分类,并且我需要得到每个分类中某个字段的全部成员。 上面的话,大家看起来可能不太好懂,下面举一个例子来给大家说明。 现在我们有一张表,结构如下: 现在我们向这张表中插入一些数据。 insert into test_grou
阅读全文
摘要:此篇博客内容引自“MySQL经典练习题及答案” 废话不不多说!!! 建表、插入数据。 上题!!! 下面的内容中,mine下面的是我自己写的,mine再下面的一条引用的那篇博客自带的答案。(因为我用的是sqlserver,所以有的sql可能在mysql中不能执行,单道理都一样哈!) 未完,待续! 此篇
阅读全文
摘要:在我们的日常工作中,写sql的时候,group by应该是每个程序员都会遇到的。 今天,我们来谈论一下关于group by 的相关理解。 针对group by 的例子,我们可以写成如下样子: select (1) from your_table where (2) group by (3) havi
阅读全文
摘要:什么是间隙锁(gap lock)? 间隙锁是一个在索引记录之间的间隙上的锁。 间隙锁的作用? 保证某个间隙内的数据在锁定情况下不会发生任何变化。比如我mysql默认隔离级别下的可重复读(RR)。 当使用唯一索引来搜索唯一行的语句时,不需要间隙锁定。如下面语句的id列有唯一索引,此时只会对id值为10
阅读全文
摘要:方法: 1、预处理。(预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性。) 2、mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 ! $sql = "select count(*)
阅读全文
posted @ 2019-07-24 17:16
超超go
摘要:其实在我们的工作中类似,select * from your_table order by id desc limit 2000000,20会经常遇见,比如在分页中就很常见。 如果我们的sql中出现这样的查询(比如:点击查看“末页”),那是相当恐怖的(等待时间会很长)。该sql是一个非常典型的排序+
阅读全文
摘要:我们工作中可能会遇到大数据量(假设上千万条)分页的情况,执行的语句类似以下sql语句: select * from record limit 2000000,10 运行这条语句,时间保持在30秒左右,这样的性能是很差的。 那我们该怎么去优化它呢? 将sql改为下面这样: Select * From
阅读全文
摘要:mysql事物 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换为另一种状态。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)、
阅读全文
摘要:在我们的工作中可能会遇到这样的情形: 我们需要查询a表里面的数据,但是要以b表作为约束。 举个例子,比如我们需要查询订单表中的数据,但是要以用户表为约束,也就是查询出来的订单的user_id要在用户表里面存在才返回。 表结构和表数据如下: table1 usertb;+ + + + + + +| F
阅读全文
摘要:1、首先,开启mysql的查询缓存。 查看查询缓存情况: MariaDB [test]> show variables like '%query_cache%';+ + +| Variable_name | Value |+ + +| have_query_cache | YES || query_
阅读全文
posted @ 2019-04-25 10:55
超超go
摘要:Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方。通常我们是使用的explain,以及slow query log都无法做到精确分析, 但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况,比如C
阅读全文
摘要:在我们开发的过程中,我们可能会需要在表中随机生成一些数据以供我们进行相应的测试。 就像我之前发的“mysql创建存储过程向数据表中加入规定条数的数据” 那么我们应该怎样生成随机的字符串和随机数字呢? 下面我们来进行讨论。 1、生成随机数字。 我们生成的随机数字肯定不是没有范围的。我们会设置随机数字的
阅读全文
posted @ 2019-04-09 16:32
超超go
摘要:内容源自:一篇很棒的 MySQL 触发器学习教程 一、触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,例如当对一个表进行操作( in
阅读全文
posted @ 2019-04-09 16:00
超超go
摘要:以下我面试经常问的2道题..尤其针对觉得自己SQL SERVER 还不错的同志.. 呵呵 很难有人答得好.. 各位在我收集每个人擅长的东西时,大部分都把SQL SERVER 标为Expert,看看是否答的上来.. 1. 什么是聚合索引(clustered index) / 什么是非聚合索引(nonc
阅读全文
摘要:1、我们在设计表的时候,尽量让字段拥有默认值,尽量不要让字段的值为null。 因为,在 where 子句中对字段进行 null 值判断(is null或is not null)将导致引擎放弃使用索引而进行全表扫描。 select id from t where num is null --可以在nu
阅读全文
摘要:大家都知道用group by的话,select 后面指定的字段必须与group by后面的一致。group by 只有个别字段,如果拿出其他未分组的字段信息呢?在网上搜了下, 总结如下: 使用了group by 之后,就要求select后面的字段包含在group by 或聚合函数里面,这时如果想读取
阅读全文
摘要:本文来源于:https://blog.csdn.net/u012758088/article/details/78741567 Mycat 本身是无状态的,可以用 HAProxy 或四层交换机等设备组成 Mycat 的高可用集群,后端 MySQL 则 配置为主从同步,此时整个系统就是高可用的。 部署
阅读全文
posted @ 2019-01-02 11:26
超超go
摘要:和垂直分库不同,水平分表,是将那些io频繁,且数据量大的表进行水平切分。 基本的配置和垂直分库一样,我们需要改的就是我们的 schema.xml和rule.xml文件配置(server.xml不用做任何修改) 除此之外,我们还需要在两个分片数据库服务器上建立分片用的数据库10.0.4.181上建立(
阅读全文
摘要:在我们的工作中可能会遇到数据库的io瓶颈。 这个时候我们应该怎么办呢? 解决办法有很多,我们可以想到的为:数据库集群,主从复制,读写分离,数据库负载均衡,数据库的分库,分表。接下来我们写一下,数据库的垂直分库。 其实我们实现垂直分库目的是为了,能够分摊主数据库的io压力,一般设置分出去的数据库为读,
阅读全文
摘要:先在linux上安装好两台mysql 首先,备份主数据库: mysqldump --master-data=2 --single-transaction --routines --triggers --events -uroot -p imooc_db > bak_imooc_db.sql 可能会出
阅读全文
浙公网安备 33010602011771号