
SQL Server
文章平均质量分 66
youhebuke225
这个作者很懒,什么都没留下…
展开
-
SQL之目录
SQL目录原创 2022-08-29 13:39:51 · 739 阅读 · 0 评论 -
sql高级之回表
• 索引本质:类似书籍目录,存储字段值的 有序引用,指向表中对应的数据行(行地址或主键)。• 非覆盖索引:索引字段未包含查询所需的所有列,需回表获取其他字段。• 覆盖索引:索引字段包含查询所需的所有列,无需回表。避免回表是提升查询性能的关键手段,通过 覆盖索引设计 和 查询字段精简,可显著减少 I/O 和计算开销。优化时需结合业务场景,权衡查询性能与索引维护成本。原创 2025-04-24 08:58:25 · 335 阅读 · 0 评论 -
数据库导出
【代码】数据库导出。原创 2025-02-27 10:08:15 · 383 阅读 · 0 评论 -
pymysql.err.OperationalError: (2013, ‘Lost connection to MySQL server during query‘)
通过上述步骤,你应该能够诊断并解决 “Lost connection to MySQL server during query” 的问题。如果问题依旧存在,可能需要更深入地检查你的应用程序代码或咨询专业的数据库管理员。这个错误通常表示你的 Python 应用程序在尝试与 MySQL 数据库服务器进行通信时连接被意外中断了。原创 2024-08-05 09:36:57 · 1680 阅读 · 0 评论 -
如何查看数据库的主机名和端口
查看数据库的主机名和端口的方法因数据库类型(如MySQL、Oracle、SQL Server等)和操作系统(如Windows、Linux)的不同而有所差异。原创 2024-07-27 15:28:53 · 2907 阅读 · 0 评论 -
mysql interactive_timeout
当一个客户端与 MySQL 服务器建立了一个交互式连接(通常是通过 MySQL 命令行客户端或类似工具时),如果在这个时间间隔内没有任何活动(即没有发送任何查询或命令),MySQL 服务器将关闭这个连接。的默认值可能因 MySQL 的版本和配置而异,但通常是一个相对较大的值,比如 28800 秒(即 8 小时),以允许用户在进行长时间工作时不必重新登录。:在你的应用程序中,使用持久连接(也称为连接池)可以帮助避免频繁地建立和关闭连接,这可以减少由于超时导致的连接关闭问题。的值来延长交互式连接的超时时间。原创 2024-07-04 09:19:40 · 685 阅读 · 0 评论 -
mysql预置的数据库
MySQL系统内置了多个数据库,这些数据库主要用于存储和管理MySQL服务器本身的数据、元数据信息、性能监控数据等。请注意,不同版本的MySQL可能会有所不同,某些数据库或表可能在某些版本中不存在。要获取特定版本MySQL的完整内置数据库和表列表,建议参考该版本的官方文档。原创 2024-06-20 18:22:11 · 388 阅读 · 0 评论 -
performance_schema.events_statements_current
表是 MySQL 中用于实时监视和分析当前正在执行的 SQL 语句性能事件的重要工具。通过查询该表,用户可以了解哪些 SQL 语句正在运行以及它们的性能特征,从而帮助优化数据库性能和解决性能问题。库中的一个表,它用于显示当前正在执行的 SQL 语句的性能事件。这个表提供了关于当前正在运行的 SQL 语句的实时信息,允许数据库管理员和开发者监控和分析 SQL 语句的性能。原创 2024-06-20 18:20:10 · 754 阅读 · 0 评论 -
information_schema.innodb_trx
通过查询这个表,你可以获得关于当前正在运行的 InnoDB 事务的详细信息,这对于诊断和解决与事务相关的性能问题或锁定问题非常有用。是 MySQL 中的一个系统表,它提供了关于当前正在进行的 InnoDB 事务的信息。数据库中,这个数据库包含了关于 MySQL 服务器状态、数据库元数据和其它内部信息的表和视图。原创 2024-06-20 18:11:28 · 715 阅读 · 0 评论 -
MYSQL杀掉会话
正在运行并且你想要终止它,你可以使用相同的步骤。首先,找到执行 DDL 的会话的。表中只包含当前正在执行的语句的“快照”,它可能不包含所有正在执行的会话。注意:这个表可能不包含所有正在执行的会话,特别是如果查询执行得非常快的话。表来查找当前正在执行的语句的会话ID(通常称为。你可以使用类似以下的查询来找到你感兴趣的会话的。如果你知道某个 DDL 操作(如。原创 2024-06-20 17:28:02 · 1073 阅读 · 0 评论 -
lock_wait_timeout
定义是一个会话或线程级别的参数,用于指定 MySQL 会话在尝试获取一个锁时应该等待的最长时间。功能:当 MySQL 会话在等待获取一个锁时,如果等待时间超过设置的时长,MySQL 会自动放弃获取该锁,并可能返回一个错误。是 MySQL 中用于控制锁等待时间的重要参数。通过合理设置和调整该参数,可以优化数据库的性能和响应时间,避免由于锁等待时间过长而导致的性能问题。原创 2024-06-20 17:11:39 · 1983 阅读 · 0 评论 -
Waiting for table metadata lock
如果有一个线程持有MDL写锁(或正在等待MDL写锁),并且有很多其他线程在等待MDL读锁(因为它们只是执行查询),那么这可能会导致性能问题,因为所有等待MDL读锁的线程都会被阻塞,直到MDL写锁被释放。时,这通常意味着有一个线程(通常是一个查询)正在等待获取一个表的元数据锁(MDL,Metadata Lock)。MDL锁是MySQL用来确保表的结构在查询过程中不会被其他线程修改的机制。)时,它会请求一个MDL写锁。其他需要读取表结构的线程(如进行。当一个线程需要修改表结构(如使用。原创 2024-06-20 16:19:48 · 1144 阅读 · 0 评论 -
show profile
默认情况下,profiling 可能没有被启用。这个命令会返回一个表格,其中包含了多个列,如。每一行都代表查询执行过程中的一个步骤,命令来查看 profiling 的结果。列显示了该步骤所花费的时间。执行你想要分析的查询。原创 2024-05-11 10:55:06 · 914 阅读 · 0 评论 -
mysql未完成事务查看
因为MySQL的事务管理主要是基于InnoDB存储引擎的,并且事务的状态(例如,是否已提交或回滚)通常是内部的、不直接暴露给用户的,但是可以通过一些方法间接地检查或诊断与事务相关的问题。原创 2024-03-20 18:08:09 · 2608 阅读 · 0 评论 -
mysql报错日志查看
在MySQL命令行客户端中,执行这个命令可以显示log_error系统变量的值,这个值通常指向MySQL的错误日志文件(error log)的路径。通过这个命令,你可以快速找到MySQL的报错日志文件的位置。输入命令后,系统会提示你输入root用户的密码。log_error在这个例子中,错误日志文件的路径是。原创 2024-03-16 23:55:18 · 1918 阅读 · 1 评论 -
查找mysql配置文件路径
使用文本编辑器(如Notepad++或Sublime Text)打开配置文件,你可以浏览和修改其中的配置项。如果此命令没有找到配置文件,说明MySQL没有指定特定的配置文件,它将使用默认的配置文件。请注意,具体的配置文件路径和名称可能因MySQL的版本、安装方式和操作系统而有所不同。如果你是在Windows系统上安装的MySQL,配置文件通常名为。文件的目录,顺序排前的优先。常见的默认配置文件路径可能包括。你可以在MySQL的安装路径下找到它,通常是在。这些命令会返回配置文件的路径。原创 2024-03-16 23:38:48 · 3596 阅读 · 0 评论 -
Linux查看mysql安装目录
这些目录是MySQL在Linux系统中默认的安装目录,用户可以在这些目录下找到MySQL的所有文件和配置信息。命令来查看MySQL相关文件的路径,包括可执行文件、配置文件等。请注意,实际的安装路径可能因不同的Linux发行版或MySQL安装方式而有所不同。在Linux系统中,MySQL的安装目录通常位于。是MySQL可执行文件的路径,而。可能是MySQL的安装路径。原创 2024-03-16 23:24:52 · 3463 阅读 · 0 评论 -
mysql日志分析工具
是一个用于分析慢查询日志的工具,它可以从 MySQL 的慢查询日志中提取出最慢的查询,并按照查询时间、锁定时间或其他指标进行排序。这对于数据库性能调优和诊断慢查询非常有用。只需指定慢查询日志的路径,原创 2024-03-14 21:10:26 · 647 阅读 · 0 评论 -
mysql安装目录
输入如下sql命令。原创 2024-03-11 16:57:31 · 294 阅读 · 0 评论 -
explain之key_len
索引最大长度为768字节,当长度过大时,mysql会做一个类似最左前缀处理,将前半部分字符提取出做索引。当字段为null时,还需要1个字节去记录。原创 2024-01-17 17:13:16 · 1103 阅读 · 0 评论 -
最左前缀法则
我们会发现他的key_len变成了4,也就是说能得出view的key_len为4,comments的key_len为4,category_id key_len也为4。我们会发现他的key_len为8,views的索引列失效了,这个范围查询导致了索引的失效,但是我们只要把>加上一个等号,就会发现views索引可以使用了。我们可以看到结果key_len变成了8,没有全部走索引的列,能得出view的key_len为4。我们会发现他的key_len为4,也就是说只走了最左列的category_id 这个索引列。原创 2024-01-13 12:35:29 · 729 阅读 · 0 评论 -
SQL高级之慢查询日志
这个命令是修改成1s,但是我们再次查询会发现他的值还是10s,这个时候我们需要新打开一个会话的窗口才行,或者我们可以修改当前会话的变量。我们输入一个慢的sql。原创 2023-06-21 09:22:14 · 2194 阅读 · 0 评论 -
SQL高级之其他优化项
limit优化。原创 2023-06-15 17:42:14 · 1325 阅读 · 0 评论 -
SQL高级之order by优化
假设 KEY a_b_c(a,b,c)原创 2023-06-13 09:30:17 · 2804 阅读 · 0 评论 -
SQL高级之子查询优化
in 与 exists有索引在有索引的情况下用inner join是最好的,其次是in,exists最糟糕无索引小表驱动大表,因为join方式需要distinct,没有索引distinct消耗性能较大所以exists性能最佳,in其次,join性能最差大表驱动小表in和exists的性能应该是接近的,都比较糟糕,exists稍微要好一点,超不过5%但是inner join由于使用了join buffer所以快很多原创 2023-05-30 09:22:00 · 308 阅读 · 0 评论 -
MYSQL高级之关联查询优化
保证被驱动表的join字段已经被索引left join时,选择小表作为驱动表,大表作为被驱动表。inner join的时候mysql自己会帮你把最小结果集的表选为驱动表子查询尽量不要放在被驱动表,有可能使用不到索引如果必须用到子查询,可将子查询设置为驱动表,因为驱动表的type肯定是all,而子查询返回的结果表没有索引,必定也是all,例子如下上面代码用到了子查询,其中临时表bc必然没有索引,那么他就会进行全表的扫描可以使用两个left join来进行优化,如下。原创 2023-05-30 09:09:45 · 599 阅读 · 0 评论 -
查询优化之单表查询
在上面语句中comments > 1 是一个范围值(所谓range),range 类型查询字段后面的索引无效,所以MySQL 无法利用索引再对后面的 views 部分进行检索。我们可以看到type变成了range,但是extra里面却是Using filesort ,这个性能有点差。这个sql语句的type是all,并且Extra里面出现了Using filesort,这个必须优化。我们发现type变成了ref,也没有存在Using filesort了。我们再次进行上面语句的查询。原创 2023-04-27 11:10:20 · 510 阅读 · 1 评论 -
七种JOIN
专栏目录请。原创 2023-04-19 09:32:19 · 140 阅读 · 0 评论 -
sql查询慢的原因
专栏目录请。原创 2023-04-19 09:24:58 · 407 阅读 · 0 评论 -
MySql的sql_mode
他是一种语法校验规则sql_mode是个很容易被忽视的变量,默认是空值。在这种设置下允许一些非法操作,比如允许一些非法数据的插入。在生产环境必须将这个值设为严格模式,所以开发、测试环境的数据也必须要设置。原创 2023-04-13 17:57:22 · 776 阅读 · 0 评论 -
Mysql大小写问题
修改当前参数之后,需要将原来数据库的表转换为小写,否则,更改后找不到数据库名,所以不可盲目更改。一般设置变量通常采用。原创 2023-04-12 09:24:41 · 121 阅读 · 0 评论 -
Mysql的用户管理与权限管理
专栏目录请。原创 2023-04-11 09:27:33 · 404 阅读 · 0 评论 -
MySql的配置文件
用于放置一些可执行文件,如 mysql.exe、mysqld.exe、mysqlshow.exe 等mysqld:这个可执行文件就代表着 MySOL 服务器程序,运行这个可执行文件就可以直接启动一个服务器进程。但这个命令不常用。mysqld_safe:mysqld safe是一个启动脚本,它会间接地调用 mysqld,而且还顺便启动了另外一个监控进程,这个监控进程在服务器进程挂了的时候,可以帮助重启它。原创 2023-04-10 09:15:40 · 4459 阅读 · 0 评论 -
MYSQL高级之MYSQL的逻辑架构
我们先看这一张图他可以简化成如下。原创 2023-04-07 09:52:51 · 464 阅读 · 0 评论 -
mysql高级之存储引擎
根据英文的测试结论来看,Archive表比MyISAM表要小大约75%,比支持事务处理的InnoDB表小大约83%。一般大公司会封装自己的存储引擎,如下。原创 2023-04-04 09:32:35 · 368 阅读 · 0 评论 -
mysql高级之索引
当我们查询的时候,如果有如何索引,且用到了符合索引中的字段,这个时候我们就要分情况讨论了。没有索引,那么整个语句都不会走索引,我们可以改成如下的语句。当对于索引列使用函数的时候,那么查询也是不做索引。当索引参与运算的时候,那么索引就会失效。增加了索引也就是缩小了扫描的范围。假设下面下面这张图示id的索引。我们执行下面的sql语句。字段的索引还是有用的。原创 2023-03-30 09:34:19 · 329 阅读 · 0 评论 -
MYSQL高级之explain
explain返回如下。原创 2023-03-27 09:28:44 · 526 阅读 · 0 评论 -
查看数据库的版本
【代码】查看数据库的版本。原创 2023-03-24 09:41:20 · 534 阅读 · 0 评论 -
SQL流程控制
一般流程控制有三种类型,如下顺序结构:程序从上往下依次执行分支结构:程序从两条或者多条路径中选择一条执行循环结构:在一定的条件下重复执行。原创 2022-09-30 15:35:39 · 342 阅读 · 0 评论 -
变量、存储过程与函数
变量是由用户定义的,不是系统的。原创 2022-09-29 13:57:48 · 503 阅读 · 0 评论