
MySQL
MySQL的应用和SQLAlchemy
Saggitarxm
本人熟悉Python语言,Golang语言WEB后台开发,希望和大家分享知识,互相交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL - 索引从基础到原理,详解/图解
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。通俗来讲,索引类似文章的目录,用来提高查询的效率。它是 B Tree 的变种,B Tree 能解决的问题,它都能解决。B Tree 解决的两大问题是什么?(每个节点存储更多关键字;路数更多)原创 2025-04-17 18:21:52 · 826 阅读 · 0 评论 -
MySQL - 通过SQL语句导出数据到CSV文件
接下来,可以使用 Excel 或其他工具将 CSV 文件导入并转换为 Excel 格式。通常情况下,Excel 可以自动检测并正确解析 CSV 文件,并将其转换为 Excel 格式。参数,该参数限制了 MySQL 数据库能够读取和写入哪些文件。语句将查询结果导出为 CSV 文件,然后再将 CSV 文件转换为 Excel 格式。语句时,需要确保 MySQL 用户对指定的导出文件路径具有写入权限。等参数,以便正确地导出数据并转换为 Excel 格式。,该目录需要 MySQL 用户有读写权限。原创 2024-07-29 16:41:47 · 3438 阅读 · 0 评论 -
MySQL - 使用 MySQL 存储过程来生成大量数据并插入到 MySQL 数据库中
通过使用存储过程,你可以在数据库端执行复杂的逻辑和数据生成操作,而无需将数据传输到客户端进行处理。这种方法可以在数据库服务器级别上高效地生成大量的数据。可以使用 MySQL 存储过程来生成大量数据并插入到 MySQL 数据库中。下面是一个示例存储过程,它可以生成指定数量的模拟用户数据并将其插入到名为。,用于指定要生成和插入的用户数量。存储过程内部使用循环语句来生成虚假的用户名和邮箱,并将它们插入到名为。以上代码会调用存储过程,并生成 1000 条模拟用户数据并插入到。的存储过程,它接受一个参数。原创 2024-01-18 18:10:18 · 1078 阅读 · 1 评论 -
msyql导入数据显示进度
pv命令会在屏幕上显示一个进度条,以及已传输的数据量、传输速度、预计剩余时间等信息。需要注意的是,使用pv命令显示进度可能会稍微降低导入数据的速度。如果您对导入速度有较高的要求,则可以选择关闭pv命令的进度显示功能。要使用pv命令来显示MySQL导入数据的进度,需要先将要导入的数据转换成管道,再使用pv命令读取管道并显示进度。不过,可以通过使用pv命令与mysql命令配合来实现显示进度。这样就只会在终端最后一行显示简单的进度信息,而不会显示详细的进度条和剩余时间等信息了。原创 2023-05-25 19:01:54 · 2945 阅读 · 0 评论 -
MySQL JSON类型字段的查找与更新
MySQL 提供了丰富的函数用于 JSON 类型字段的查找与更新,详见官方文档。原创 2023-02-11 17:55:20 · 1734 阅读 · 0 评论 -
MySQL利用存储过程新增字段
目录一、存储过程1.1什么是存储过程1.2存储过程的优缺点二、创建存储过程2.1语法与特性:2.2声明语句分隔符2.3过程体的标识2.4存储过程参数设置三、存储过程中的变量四、MySQL变量五、设置用户执行存储过程的权限六、查看存储过程的状态七、查看存储过程的创建代码八、修改存储过程九、删除存储过程十、存储过程的控制语句十一、IF-ELSEIF-ELSE条件语句十二、CASE条件语句十三、WHILE循环语句十四、LOOP循环语句。在try的语句块中遇到异常后,会暂停执行try的SQL语句,并。原创 2022-12-21 10:15:59 · 498 阅读 · 0 评论 -
Mysql 查看数据库各表容量大小
本文介绍MySQL查看数据库表容量大小的命令语句,提供完整查询语句及实例,方便大家学习使用。例:查看mysql库各表容量大小。2.查看所有数据库各表容量大小。4.查看指定数据库各表容量大小。例:查看mysql库容量大小。1.查看所有数据库容量大小。3.查看指定数据库容量大小。原创 2022-11-09 12:34:36 · 1906 阅读 · 0 评论 -
sqlalchemy - sqlalchemy中执行原生sql - 传参方式避免了sql注入
def get_data_all(user_id, name, start_time, end_time, page=1, limit=10): """ sqlalchemy orm 执行原生sql语句 :return: """ try: # 项目数据列表 conditions = dict() base_s...原创 2020-01-15 17:20:32 · 5004 阅读 · 0 评论 -
python - 在 flask-sqlalchemy中,将ORM查询语句转换成原始SQL打印出来
一句话总结,直接上代码,例:#####################################################logging.info("========================= select sql ==============================")from sqlalchemy.dialects import postgresqlrt...原创 2018-07-03 11:05:15 · 8512 阅读 · 3 评论 -
sqlalchemy 学习笔记(全)
https://segmentfault.com/a/1190000006949536SQLAlchemy是python的一个数据库ORM工具,提供了强大的对象模型间的转换,可以满足绝大多数数据库操作的需求,并且支持多种数据库引擎(sqlite,mysql,postgres, mongodb等),在这里记录基本用法和学习笔记一、安装通过pip安装$ pip install SQL...原创 2019-12-23 11:25:48 · 421 阅读 · 0 评论 -
几种常见的sqlalchemy查询
几种常见的sqlalchemy查询几种常见sqlalchemy查询:#简单查询 print(session.query(User).all())print(session.query(User.name, User.fullname).all()) print(session.query(User, User.name).all()) #带条件查询 ...原创 2020-04-21 18:14:50 · 470 阅读 · 0 评论 -
sqlalchemy - 批量删除数据,返回被删除数据的id
# 删除数据# type 1 - 批量删除# delete_ids = list()# colors = db.session.query(# Color# ).filter(# Color.id.in_(color_ids)# ).all()# for data in colors:# db.session.delete(data)# de...原创 2019-12-20 16:22:04 · 1649 阅读 · 0 评论 -
SQLAlchemy会话与事务控制
SQLAlchemy会话与事务控制 本篇内容为大家提供的是SQLAlchemy基础教程中的SQLAlchemy会话与事务控制,该教程主要介绍了SQLAlchemy会话与事务控制的基本使用、for update、事务嵌套、二段式提交等,详细而全面,感兴趣的同学可以参考学习一下。SQLAlchemy会话与事务控制 5.1. 基本使用 5.2. for update...原创 2019-12-20 16:26:27 · 1766 阅读 · 0 评论 -
在flask-sqlalchemy中使用max min avg方法
在flask-sqlalchemy中使用max min avg方法一般用max min avg方法都是查询一条数据首先从sqlalchemy中引入func方法from sqlalchemy import func然后需要sqlalchemy的实例在项目文件中我已经实例化了from flask import Flaskfrom flask.ext...原创 2019-11-10 18:16:44 · 3908 阅读 · 1 评论 -
SQLAlchemy中指定想要使用的索引
SQLAlchemy中指定想要使用的索引我们知道在MySQL中可以使用FORCE INDEX(index_name,...)来强制使用索引,那在SQLAlchemy如何指定呢?经过多方查找和实践,我发现了一个叫with_hint的函数。我们看下源码def with_hint(self, selectable, text, dialect_name="*"): r"""Add an indexing or other executional context hint fo..原创 2020-08-12 14:32:00 · 2107 阅读 · 0 评论 -
Mysql和MongoDB性能对比及应用场景分析
原文链接:https://blog.youkuaiyun.com/zombres/article/details/82020931应用场景分析1、MongoDB的应用场景1)表结构不明确且数据不断变大MongoDB是非结构化文档数据库,扩展字段很容易且不会影响原有数据。内容管理或者博客平台等,例如圈子系统,存储用户评论之类的。2)更高的写入负载MongoDB侧重高数据写入的性能,而非事务安全...原创 2020-01-16 16:27:26 · 611 阅读 · 0 评论 -
MySQL事务的四大特性及事务的隔离级别
事务的概念事务是用来保证一个业务操作的完整性,要么成功、要么失败、不允许部分成功、部分失败。事务的四大特性ACIDAtomicity:原子性原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。Consistency:一致性一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态Isolation:隔离性隔离性是当多个用户原创 2021-09-24 10:32:42 · 191 阅读 · 0 评论 -
在flask中使用sqlalchemy插入数据返回新增的id
user = User(‘name’=‘张三’)db.session.add(user)db.session.flush()#输出新插入数据的主键print(user.id)#此时数据才插入到数据库中db.session.commit()原创 2021-09-23 11:08:17 · 1011 阅读 · 0 评论 -
mysql两表关联但是关联字段类型不一致
MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下: 1 2 CAST(valueastype); CONVERT(value, type); 就是CAST(xxx AS 类型), CONVERT(xxx,类型)。可以转换的类型是有限制的。这个类型可以是以下值其中的一个:二进制,同带binary前缀的效果 : BINARY 字符型,可带参数 : CHAR() ...原创 2021-06-11 17:41:57 · 2992 阅读 · 0 评论 -
python - 链接mysql操作mysql代码实例
import pymysqlfrom pymysql.cursors import DictCursorfrom loguru import logger# 数据库配置选择DATABASE_CONFIG = { "test": { 'user': 'user_name', 'passwd': 'xxxxxx', 'host': '127.0.0.1', 'database': 'test', 'port':.原创 2021-04-21 15:16:02 · 136 阅读 · 0 评论 -
python - pandas读取excel示例 - 链接mysql示例
import osimport sysimport pymysql, tracebackimport pandas as pdfrom typing import List# database_flag = sys.argv[1]# DATABASE_CONFIG = {# "test": {# 'user': 'xxxxxxx',# 'passwd': 'xxxxxx',# 'host': 'xx.xx.xx.xx',# .原创 2021-01-23 17:49:08 · 238 阅读 · 2 评论 -
mysql索引 多个单列索引和联合索引的区别
mysql索引 多个单列索引和联合索引的区别详解背景:为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。一、联合索引测试注:Mysql版本为 5.7.20创建测试表(表记录数为63188):CREATE TABLE `t_mobilesms_11` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`userId` varch.原创 2020-09-17 19:31:02 · 518 阅读 · 0 评论 -
SQL语句中条件里需要有单引号问题
SQL语句中条件里需要有单引号问题经常写SQL语句条件中会有两个单引号,但是本身又被单引号包括,如select * from control where column=' ' 如果column中的条件为exec usp_Data '{0}'那这个就不好办了,就这样拿进去sql语句就报语法错误。那么解决的方法就是在column的条件中用两个单引号来表示一个单引号。。。这样问题就解决了如下:select * from control where column=' exec us.原创 2020-06-03 12:29:35 · 1542 阅读 · 0 评论 -
pymysql 获取插入数据的id - 在插入数据后返回插入数据的id
import requests, jsonimport math, sys, logging, threading, time, queueimport pymongo, os, base64, datetime, traceback, pymysqlfrom pymysql.cursors import DictCursorfrom apscheduler.schedulers.blo...原创 2020-04-18 20:08:16 · 5016 阅读 · 0 评论 -
mysql中int、bigint、smallint 和 tinyint的区别详细介绍
mysql中int、bigint、smallint 和 tinyint的区别详细介绍最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint;接下来将详细介绍以上三种类型的应用最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和small...原创 2020-04-14 11:18:28 · 742 阅读 · 0 评论 -
show full processlist;命令详解 - MySQL
mysql : show processlist 详解最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需。首先是几条常用的SQL。1、按客户端 IP 分组,看哪个客户端的链接数最多selectclient_ip,count(client_ip)asclient_numfrom(selects...原创 2020-04-10 20:09:07 · 5877 阅读 · 0 评论 -
Grafan+Prometheus 监控 MySQL
Grafan+Prometheus 监控 MySQLhttp://www.manongjc.com/article/20818.html架构图环境IP 环境 需装软件 192.168.0.237 mysql-5.7.20 node_exporter-0.15.2.linux-amd64.tar.gz mysqld_exporter-0.10....原创 2019-12-28 14:52:20 · 437 阅读 · 1 评论 -
如何检测MySQL是否命中索引?
在日常工作中,我们有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,此时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。(QEP:sql生成...原创 2019-12-21 18:06:16 · 4980 阅读 · 0 评论 -
MySQL 索引简介
索引是MySQL数据库中的重要对象之一,用于快速找出某个列中有某一特定值的行。为什么要使用索引索引是 MySQL 中一种十分重要的数据库对象。它是数据库性能调优技术的基础,常用于实现数据的快速检索。索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实质上是一张描述索引列的列值与原表中记录行之间一一对应关系的有序表。在 MySQL 中,通常有以下两种方式访...原创 2019-12-21 18:00:39 · 123 阅读 · 0 评论 -
MYSQL 什么时候用单列索引?什么使用用联合索引?(收集)
MYSQL 什么时候用单列索引?什么使用用联合索引?(收集)我一个表 students 表,有3个字段 ,id,name,age 我要查询 通过 name 和age,在这两个字段 是创建 联合索引?还是分别在name和age上创建 单列索引呢? 多个字段查询什么情况下用联合索引 什么时候分别创建单列索引呢?1,首先要确定优化的目标,在什么样的业务场景下,表的大小等等。如果表比较小的话...原创 2019-12-21 17:39:02 · 155 阅读 · 0 评论 -
MySQL 索引建立原则
MySQL 索引设计原则:(1)对于经常查询的字段,建议创建索引。(2)索引不是越多越好,一个表如果有大量索引,不仅占用磁盘空间,而且会影响INSERT,DELETE,UPDATE等语句的性能。(3)避免对经常更新的表进行过多的索引,因为当表中数据更改的同时,索引也会进行调整和更新,十分消耗系统资源。(4)数据量小的表建议不要创建索引,数据量小时索引不仅起不到明显的优化效果,对于索引...原创 2019-12-21 16:07:11 · 650 阅读 · 0 评论 -
MySQL 索引的查看/创建/删除
1.索引作用在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。SELECT c1,c2,c3 ...原创 2019-12-21 15:30:20 · 151 阅读 · 0 评论 -
mysql exists 和 in的效率比较
mysql exists 和 in的效率比较这条语句适用于a表比b表大的情况select * from ecs_goods a where cat_id in(select cat_id from ecs_category); 这条语句适用于b表比a表大的情况select * from ecs_goods a where EXISTS(select cat_id from ecs...原创 2019-12-21 10:22:28 · 167 阅读 · 0 评论 -
MySQL事务
https://www.codercto.com/a/86576.html默认情况,MySQL执行的SQL是autocommit的,SALAlchemy 查询语句也是 autocommit的,就是说如果没有明确声明事务的begin,每个单独的SQL都是一个独立的事务。但是在做交易系统时,比如银行给用户A转账给用户B时,有两个操作,从A里面减100,然后给B加100。这两个操作必须放在一个事务...原创 2019-12-20 10:24:15 · 137 阅读 · 0 评论 -
Python预编译语句防止SQL注入
"""@author: zhangjun.xue@time: 2019/12/18 22:20@file: xue_test.py@desc: """# Python预编译语句防止SQL注入# 错误用法:# 1 sql = "select id,type,name from xl_bugs where id = %s and type = %s" % (id, type)#...原创 2019-12-18 14:33:35 · 1031 阅读 · 1 评论 -
开启MySQL远程访问权限 允许远程连接
开启MySQL远程访问权限 允许远程连接1、登陆mysql数据库 mysql -u root -p 查看user表mysql>use mysql;Database changedmysql>select host,user,password from user;+--------------+------+------------------...原创 2019-11-10 18:32:14 · 22180 阅读 · 0 评论 -
CentOS7 yum方式安装MySQL5.7(亲测)
CentOS7 yum方式安装MySQL5.7转载至博客:https://www.cnblogs.com/bigbrotherer/p/7241845.html在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1 下载并安装MySQL官方的Yum Repository[roo...原创 2019-11-10 18:28:52 · 104 阅读 · 0 评论 -
EnvironmentError: mysql_config not found
安装mysql相关的python包时,都有可能出现以下错误:➜ pip install flask-mysqldbCollecting flask-mysqldb Downloading Flask-MySQLdb-0.2.0.tar.gzRequirement already satisfied: Flask>=0.10 in /usr/local/lib/python2.7...原创 2019-11-10 16:09:20 · 160 阅读 · 0 评论 -
Python开发【笔记】:为什么pymysql重连后才能查到新添加的数据
----------+ 1 row in set (0.00 sec) 重复读(REPEATABLE READ): InnoDB 的默认隔离级别。它可以防止任何被查询的行被其他事务更改,从而阻止不可重复的读取,而不是 幻读取。它使用中度严格的锁定策略,以便事务内的所有查询都会查看同一快照中的数据,即数据在事务开始时的数据。 REPEATABLE READ ...转载 2018-08-23 17:42:53 · 1032 阅读 · 0 评论 -
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
1. 添加一个新对象前面介绍了映射到实体表的映射类User,如果我们想将其持久化(Persist),那么就需要将这个由User类建立的对象实例添加到我们先前创建的Session会话实例中:复制代码代码如下:ed_user = User('ed', 'Ed Jones', 'edspassword')session.add(ed_user)上面两段代码执行完后对象持久化了么?你...转载 2018-08-23 17:41:30 · 1665 阅读 · 0 评论