随笔分类 -  mysql

摘要:主键 上级id 节点路径 id pid node_path 1 0 0-1 2 1 0-1-2 3 2 0-1-2-3 node_path text ut8编码 添加普通索引,长度1000 查询下属团队:select * from t where node_path like "mynodepath 阅读全文
posted @ 2023-05-09 10:07 zenghansen 阅读(35) 评论(0) 推荐(0) 编辑
摘要:由于navcat收费,改用datagrip,发现某些版本下的mysql,结果表格展示int类似字段,会自动追加很多0。 解决方法是:修改链接的驱动如图: 阅读全文
posted @ 2022-03-29 10:42 zenghansen 阅读(224) 评论(0) 推荐(0) 编辑
摘要:import time from threading import Thread import mysql.connector class db(): list = [] # 每个连接最大使用次数 useTimes = 10 # 默认开启的线程数量 threadNum = 10 # 获取连接超时时间 阅读全文
posted @ 2021-07-21 16:59 zenghansen 阅读(464) 评论(0) 推荐(0) 编辑
摘要:select * from a left join b on a.id=b.id where a.createtime>xxxx; 执行计划: 如果a.createtime后的结果集比b要大,那么b作为驱动表去整合a的结果 如否,则a.createtime后的结果作为驱动表去整合b select * 阅读全文
posted @ 2021-06-25 14:16 zenghansen 阅读(75) 评论(0) 推荐(0) 编辑
摘要:背景 因为mysql数据较大,业务稳定性要求高,在查询分页数据的时候,可能需要很多张表数据组合才可以完成所需字段。 例如 select t1.f1,t2.f2,t3.f3 from t1 left join t2 on t1.f1=t2.f1 left join t3 on t2.f2=t3.f2 阅读全文
posted @ 2020-09-18 15:17 zenghansen 阅读(157) 评论(0) 推荐(0) 编辑
摘要:很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符。 看下面的例子:假设有一张q币表(cdb_qb),包含state和value二个字段,没有额外建索引。一共有15条数据。符合 阅读全文
posted @ 2017-09-28 18:02 zenghansen 阅读(220) 评论(0) 推荐(0) 编辑
摘要:mysql的简单锁机制。 myisam 1、只支持表级锁,所以经常更新的表结构不适宜用。 2、select也会产生锁表 innodb 1、支持事务,行级锁,表级锁,执行行级锁的前提是sql语句的索引有效,否则,执行表级锁。 2、不存在字段锁问题,直接锁行的。 3、select不会请求锁,自然也不会产 阅读全文
posted @ 2017-06-28 16:38 zenghansen 阅读(546) 评论(0) 推荐(0) 编辑
摘要:CREATE DEFINER=`root`@`%` PROCEDURE `batchInsert`(IN loop_times INT) BEGIN DECLARE var INT; SET var = 0; set @exeSql=concat("insert into cdb_dynamic (typeId,addTime,userId) VALU... 阅读全文
posted @ 2016-10-19 11:50 zenghansen 阅读(325) 评论(0) 推荐(1) 编辑
摘要:前言 通常,为了简化逻辑,master会设置为只读,正常只通过slave进行读写。 若要两边都写,为了避免自增id冲突,一般会设置奇偶错开,即一台的自增ID均为奇数,另一台均为偶数。 基本原理 首先,slave开启log_bin二进制日志,这里面记录了数据的修改日志,这是同步的基础。 然后,mast 阅读全文
posted @ 2015-10-14 17:36 zenghansen 阅读(918) 评论(0) 推荐(0) 编辑
摘要:创建存储过程,将中文字段转拼音首字母CREATE DEFINER=`root`@`%` FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8BEGIN DECLARE V_RETURN VA... 阅读全文
posted @ 2015-09-29 15:25 zenghansen 阅读(11385) 评论(0) 推荐(1) 编辑
摘要:mysql库 user(用户以及所有库权限配置) db(具体库权限配置) 配置完毕要用命令 FLUSH PRIVILEGES; 刷新权限 备份数据库可以直接copy文件的形式,不过这样copy的文件会有权限或者需要修复的问题。可以更改拥有者和用工具修复来处理。 将my.cnf文件中[mysqld]下 阅读全文
posted @ 2015-06-02 17:26 zenghansen 阅读(157) 评论(0) 推荐(0) 编辑
摘要:5.5(linux)[mysqld]#loglog-output=FILEgeneral-log #开启普通日志general-log_file = /tmp/mysqllog/gen.log #设置普通日志文件5.6(win)[mysqld]general_log=1general_log_fil... 阅读全文
posted @ 2014-11-18 14:19 zenghansen 阅读(448) 评论(0) 推荐(0) 编辑
摘要:mysqli提供了面向对象和面向过程两种方式来与数据库交互,分别看一下这两种方式。1.面向对象在面向对象的方式中,mysqli被封装成一个类,它的构造方法如下:__construct ([ string $host [, string $username [, string $passwd [, s... 阅读全文
posted @ 2014-10-24 15:23 zenghansen 阅读(288) 评论(0) 推荐(0) 编辑
摘要:MYSQL的事务处理主要有两种方法。 1、用begin,rollback,commit来实现begin开始一个事务rollback事务回滚commit事务确认2、直接用set来改变mysql的自动提交模式MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过set aut... 阅读全文
posted @ 2014-10-22 10:01 zenghansen 阅读(314) 评论(0) 推荐(0) 编辑
摘要:1、left join 需要注意的事项 以左表为基准,匹配右表,如果右表匹配了两条,那么,就生成两条记录,而这两条记录的坐表信息都是一样的。 之前误以为,右表不会影响记录的条数。select 部分,不再是两张表的概念,而是一个大临时表。比如select t2.count(id) ,会只生成一条记录。 阅读全文
posted @ 2014-10-20 11:25 zenghansen 阅读(200) 评论(0) 推荐(0) 编辑
摘要:通过MySQL命令行,可以修改MySQL数据库的密码,下面就为您详细介绍该MySQL命令行,如果您感兴趣的话,不妨一看。 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令 mysq 阅读全文
posted @ 2014-09-24 10:55 zenghansen 阅读(186) 评论(0) 推荐(0) 编辑
摘要:select * from gmvcsbase.base_file file,gmvcsbase.base_user user,gmvcsbase.base_department dep,gmvcsbase.base_workstation work where file.police_id=use 阅读全文
posted @ 2014-03-19 14:37 zenghansen 阅读(163) 评论(0) 推荐(0) 编辑
摘要:昨天$yestoday = date("Y-m-d 00:00:00",strtotime('-1day'));$today = date("Y-m-d 00:00:00");$result = $this->my_class->get_sql("select count(*) from obj_folder where create_time>'$yestoday' and create_time<='$today'");查询当前这周的数据SELECT name 阅读全文
posted @ 2013-07-23 10:40 zenghansen 阅读(1095) 评论(0) 推荐(0) 编辑
摘要:";}//创建存储结构mysql_query("DROP PROCEDURE IF EXISTS `my_test1`;", $link);$create_pro_sql = "CREATE PROCEDURE `my_test1`(a INT, b INT) BEGIN DECLARE c INT; IF a IS NULL THEN SET a = 0; END IF; IF b IS NULL THEN SET b = 0; END IF; SET c = a + b; SELECT c AS SUM; ... 阅读全文
posted @ 2013-06-28 20:29 zenghansen 阅读(290) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示