Mysql
文章平均质量分 63
Mysql知识点
小镇程序员
Php And Golang Coder
展开
-
MySQL面试题--最全面-索引
回表操作是指在数据库查询过程中,当数据库引擎无法直接从索引中获取所需的数据,需要通过索引查找到数据行的位置,然后再去实际的数据表中获取完整的数据行的过程。我们生成了一个存储更高级目录项的 页33 ,这个页中的两条记录分别代表页30和页32,如果用户记录的主键值在 [1, 320) 之间,则到页30中查找更详细的目录项记录,如果主键值 不小于320 的话,就到页32中查找更详细的目录项记录。需要注意的是,非聚簇索引的查找性能受到多个因素的影响,包括B+树的高度、节点的分裂情况、磁盘I/O操作的效率等。原创 2024-09-03 16:38:09 · 1146 阅读 · 0 评论 -
mysql 慢查询日志配置
1、显示慢日志是否开启show variables like ‘%slow_query_log%’2、查询超过多少秒才记录show variables like ‘%long_query_time%’3、配置分全局配置和配置文件的配置全局配置1) 将 slow_query_log 全局变量设置为“ON”状态set global slow_query_log=‘ON’;2) 查询超过1秒就记录set global long_query_time=13) 设置慢查询日志存放的位置set g原创 2021-11-25 17:25:10 · 1319 阅读 · 0 评论 -
sql学习
一 、子查询、过滤重复SELECT code,xiaoshou_code,w3.order_sn,FROM_UNIXTIME(w1.createtime),FROM_UNIXTIME(w1.outtime) FROM ph_pop_waredetail w1LEFT JOIN ph_pop_warerecord w2 on w1.warerecird_id=w2.idLEFT JOIN finance.ph_finance_order w3 on CONCAT(w1.xiaoshou_code,’_t原创 2021-08-16 19:17:25 · 90 阅读 · 0 评论 -
优化mysql的内存
Mysql占用CPU过高的时候,该从哪些方面下手进行优化?占用CPU过高,可以做如下考虑:1)一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引;2)打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy、OrderBy排序问题所导致,然后慢慢进行优化改进。比如优化insert语句、优化group by语句、原创 2021-02-19 15:22:23 · 233 阅读 · 0 评论 -
Mysql 复杂sql
createtablestudent( snovarchar2(10)primarykey, snamevarchar2(20), sagenumber(2), ssexvarchar2(5) ); createtableteacher( tnovarchar2(10)primarykey, tnamevarchar2(20) ); createtablecourse( cnovarchar2(10),...原创 2020-12-14 17:59:07 · 230 阅读 · 0 评论 -
mysql show full processlist 分析问题 mysql服务器负载居高不下
show proceslist时发现大量的sleep,有什么风险吗,该如何处理?(一)可能的风险有: 1、大量sleep线程会占用连接数,当超过max_connections后,新连接无法再建立,业务不可用; 2、这些sleep线程中,有些可能有未提交事务,可能还伴随着行锁未释放,有可能会造成严重锁等待; 3、这些sleep线程中,可能仍有一些内存未释放,数量太多的话,是会消耗大量无谓的内存的,影响性能。(二)建议应对措施: 1、升级到5.7及以上版本,连接性能原创 2020-11-12 11:59:50 · 853 阅读 · 0 评论 -
Mysql 优化经验
一、Mysql大概1700W大表删除1000W左右数据,发现数据大小和索引大小并没有减少思考delete 操作并没有真正删除数据,表的空间并没有被释放。这些被删除的记录行,只是被标记删除,是可以被复用的,下次有符合条件的记录是可以直接插入到这个被标记的位置的。比如我们在 id 为 300-600 之间的记录中删除一条 id=500 的记录,这条记录就会被标记为删除,等下一次如果有一条 id=400 的记录要插入进来,那么就可以复用 id=500 被标记删除的位置,这种情况叫行记录复用。还有一原创 2020-11-05 10:27:56 · 99 阅读 · 0 评论 -
PHP MYSQL注入攻击需要预防7个要点
1:数字型参数使用类似intval,floatval这样的方法强制过滤。2:字符串型参数使用类似mysql_real_escape_string这样的方法强制过滤,而不是简单的addslashes。3:最好抛弃mysql_query这样的拼接SQL查询方式,尽可能使用PDO的prepare绑定方式。4:使用rewrite技术隐藏真实脚本及参数的信息,通过rewrite正则也能过滤可疑的参数。5:关闭错误提示,不给攻击者提供敏感信息:display_errors=off。6:以日志的方式记转载 2020-10-21 07:41:43 · 133 阅读 · 0 评论 -
Mysql 什么是乐观锁,什么是悲观锁
一、并发控制当程序中可能出现并发的情况时,就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在 DBMS 中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离.原创 2020-10-18 10:39:09 · 215 阅读 · 1 评论 -
MySQL乐观锁电商库存并发问题应用
MySQL乐观锁电商库存并发问题应用什么是乐观锁,什么是悲观锁【多线程系列】CAS、AQS简单介绍一、案例说明银行两操作员同时操作同一账户。比如A、B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户扣除50元,A先提交,B后提交。最后实际账户余额为1000-50=950元,但本该为1000+100-50=1050。这就是典型的并发问题。乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本(Version)记录机制实现。何谓数.原创 2020-10-18 10:37:50 · 535 阅读 · 0 评论 -
mysql事务隔离级别/脏读/不可重复读/幻读详解
一、四种事务隔离级别1.1read uncommitted 读未提交即:事务A可以读取到事务B已修改但未提交的数据。除非是文章阅读量,每次+1这种无关痛痒的场景,一般业务系统没有人会使用该事务隔离级别,标准实在太宽松了。1.2read committed 读已提交(简称RC)即:事务A只能读取到事务B修改并已提交的数据。这个级别相对要严格一些,至少是要等其它事务把变更提交到db,才能读取到,听上去蛮靠谱的。但是有些业务场景,比如会员系统中,如果要在一个事务中,多次读取用户身...转载 2020-10-14 08:07:12 · 575 阅读 · 0 评论 -
【Mysql优化】聚簇索引与非聚簇索引概念
必须为主键字段创建一个索引,这个索引就是所谓的"主索引"。主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是PRIMARY而不是UNIQUE。首先明白两句话: innodb的次索引指向对主键的引用 (聚簇索引) myisam的次索引和主索引 都指向物理行(非聚簇索引) 聚簇索引是对磁盘上实际数据重新组织以按指定的一个或多个列的值排序的算法。特点是存储数据的顺序和索引顺序一致。一般情况下主键会默认创建聚簇索引,且一张表只允许存在一个聚簇索引(理由:数...转载 2020-09-22 08:06:00 · 130 阅读 · 0 评论 -
MySQL优化:如何避免回表查询?什么是索引覆盖?
数据库表结构: 1 2 3 4 5 6 createtableuser( idintprimarykey, namevarchar(20), sexvarchar(5), index(name) )engine=innodb; 1 2 3 selectid,namewherename='...转载 2020-09-21 18:28:43 · 120 阅读 · 0 评论 -
数据库索引原理及优化
一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。二、常见的查询算法及数据结构为什么这里要讲查询算法和数据结构呢?因为之所以要建立索引,其实就是为了构建一种数据结构,可以在上面应用一种高转载 2020-09-21 16:38:37 · 281 阅读 · 0 评论 -
Mysql索引
文章目录 一、索引概述 1. 简介 2. 索引的原理 3. 索引的优点 4. 索引的缺点 二、索引的使用场景 三、索引的分类和创建和修改删除等命令 1. 基本索引类型 2. 创建的语句 3. 索引的创建、查询和删除 索引的创建 ① 普通索引(单列索引) ② 复合索引(组合索引) ③ 唯一索引 ④ 主键索引 ⑤ 全文索引 索引的查询和删除 四、简单实例演示转载 2020-09-21 09:06:49 · 218 阅读 · 0 评论 -
Mysql 功能大全
本文是转载,原文地址:https://blog.csdn.net/qq_38490457/article/details/107640904?utm_medium=distribute.pc_feed.none-task-blog-personrec_hot-31.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_hot-31.nonecase&request_id=5f28e66c2405af..转载 2020-09-08 18:36:12 · 285 阅读 · 0 评论 -
Mysql Group By时查询多个字段报错问题解决
1、SELECT pk_class ,COUNT(tc.fk_course) AS num FROM t_course_class AS tc WHERE deleted=0 AND GROUP BY tc.fk_course报错:[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the r...原创 2020-09-07 18:52:29 · 2123 阅读 · 0 评论 -
Mysql 嵌套查询 IN的用法
表一:CREATE TABLE `t_course_user` ( `pk_course_user` int(11) NOT NULL AUTO_INCREMENT COMMENT '报名信息ID', `fk_course` int(11) NOT NULL DEFAULT '0' COMMENT '课程ID报名的课程', `fk_user` int(11) NOT NULL DEFAULT '0' COMMENT '报名人', `fk_user_owner` int(11) NOT N...原创 2020-09-07 18:43:23 · 1540 阅读 · 0 评论 -
Mysql 计算不同颜色书籍的数量
1、计算各个颜色书籍的数量SELECT SUM(IF(color='红',1,0)) AS 红, SUM(IF(color='蓝',1,0)) AS 蓝, SUM(IF(color='白',1,0)) AS 白 FROM book结果:原创 2020-08-13 08:38:39 · 697 阅读 · 0 评论 -
MySQL COUNT()函数介绍
COUNT()函数返回表中的行数。 COUNT()函数允许您对表中符合特定条件的所有行进行计数。COUNT()函数的返回类型为BIGINT。 如果没有找到匹配的行,则COUNT()函数返回0。COUNT函数有几种形式:COUNT(*),COUNT(expression)和COUNT(DISTINCT expression)。例:COUNT(*) :这种情况下通配符*并不会像我们猜想的那样扩展成所有列,实际上,它会忽略所有的列儿直接统计所有的行数...原创 2020-08-12 15:23:59 · 630 阅读 · 1 评论