
mysql
do better myself
学无止境、只有不断的学习,你才不会被社会淘汰!加油吧!少年!
展开
-
mysql select info from 插入需要的字段
insert into school_spot_hy (name,latitude,longitude,area,address,create_time,update_time,is_show) select name,latitude,longitude,area,address,create_time,update_time,is_show from school_spot_new where `longitude`>0原创 2020-10-22 17:48:55 · 1495 阅读 · 0 评论 -
mysql update select用法实例
//更新股票的总得分以股票评分表的总分为基础UPDATE stock_mark_new INNER JOIN stock_summary_new ON stock_mark_new.stock_code=stock_summary_new.stock_code SET stock_mark_new.total_score=stock_summary_new.total_scoremysql update select用法实例 应该使用inner join,即:...原创 2020-08-03 14:03:09 · 333 阅读 · 0 评论 -
mysql order by field自定义排序
语法ORDERBYFIELD(`id`,5,3,7,1)要注意的是,FIELD 后面是没有空格的.因此, 完整的 SQL 为:SELECT*FROM`MyTable`WHERE`id`IN(1,7,3,5)ORDERBYFIELD(`id`,5,3,7,1)常见应用SELECT*FROM`MyTable`WHERE`name`IN('张三','李四','王五','孙六')ORDERBYFIE...原创 2020-06-28 15:25:13 · 685 阅读 · 0 评论 -
订单分表和redis分布式锁的实现,数据库innodb3种锁的实现
学习了淘宝的订单系统设计,将订单拆分为买家库、卖家库,消息中间件进行订单同步(类似于方案1、2的对买家、卖家分表么),似乎是不关注订单数据冗余,但没想明白如何按照订单查询,所以借鉴设计了方案3:(1)按照userId取模分表(2)按照sellerId取模分表(3)按照orderId取模分表相比方案1、2,少维护了一张表,但有两份数据冗余订单水平分库分表,为什么要按照用户id来切分呢...原创 2020-03-30 18:19:41 · 478 阅读 · 0 评论 -
mysql 聚集索引和非聚集索引区别 和explian extra的各种类型含义解释
简单概况一下:聚集索引就是以主键创建的索引非聚集索引就是除了主键以外的索引。非聚集索引也叫做二级索引,不用纠结那么多名词,将其等价就行了。非聚集索引在建立的时候也未必是单列的,可以多个列来创建索引。本质区别:表记录的排列顺序和索引的排列顺序是否一致。聚集索引(clustered)也叫聚簇索引定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索...原创 2020-03-30 15:39:31 · 2559 阅读 · 1 评论 -
lareval 分页查询实现
$page = $request->get('page') ? $request->get('page') : 1; //每页的条数 $perPage = 2; //计算每页分页的初始位置 $offset = ($page * $perPage) - $perPage; $list = DB...原创 2019-11-25 17:19:12 · 155 阅读 · 0 评论 -
mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?
1.如果只是为了分页,可以考虑这种分表,就是表的id是范围性的,且id是连续的,比如第一张表id是1到10万,第二张是10万到20万,这样分页应该没什么问题。2.如果是其他的分表方式,建议用sphinx先建索引,然后查询分页,我们公司现在就是这样干的Mysql分库分表方案1.为什么要分表:当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话转载 2016-01-19 09:47:00 · 58140 阅读 · 7 评论 -
mysql知识和sql语句分享
Mysql设置自增长主键的初始值alter table test AUTO_INCREMENT = 200;//mysql 配置文件的目录/etc/my.cnf//mysql 导出sql文件sudo su sudo mysqldump -uroot -p ayibangcms admin > admin.sql;原创 2016-01-11 17:04:57 · 381 阅读 · 0 评论 -
Mysql常见水平分表方案
根据经验,Mysql表数据一般达到百万级别,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉;水平分表能够很大程度较少这些压力。1.按时间分表这种分表方式有一定的局限性,当数据有较强的实效性,如微博发送记录、微信消息记录等,这种数据很少有用户会查询几个月前的数据,如就可以按月分表。2.按区间范围分表一般在有严格的自增id需求上,如按照user_id水平分表:原创 2016-01-11 10:38:32 · 1650 阅读 · 1 评论 -
mysql left 二分查找
//内链接SELECT * FROM table1,table2 WHERE table1.id=table2.id; //left joinSELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id; //3表查询 SELECT * FROM table1 LEFT原创 2016-01-08 09:51:52 · 750 阅读 · 0 评论 -
mysql事务知识分享
一、 什么是事务事务就是一段sql 语句的批处理,但是这个批处理是一个atom(原子) ,不可分割,要么都执行,要么回滚(rollback)都不执行。二、为什么出现这种技术为什么要使用事务这个技术呢? 现在的很多软件都是多用户,多程序,多线程的,对同一个表可能同时有很多人在用,为保持数据的一致性,所以提出了事务的概念。这样很抽象,举个例子: A 给B 要划钱,A 的转载 2016-01-14 16:37:03 · 290 阅读 · 0 评论 -
后台权限数据表和linux后台执行脚本命令例子
1.后台用户管理表CREATE TABLE `admin_user` ( `uid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` char(50) DEFAULT '' COMMENT '系统登录名', `password` char(50) DEFAULT '' COMMENT '密码', `mo原创 2016-02-25 09:39:11 · 352 阅读 · 0 评论 -
某些mysql like查询也是可以使用到索引的
原创 2016-04-13 09:09:33 · 1435 阅读 · 0 评论 -
user、order、pay_log、pay_daybook表
原创 2016-04-15 10:35:05 · 405 阅读 · 0 评论 -
查看当前SQL执行,包括执行状态
mysqladmin -uroot -p123456 processlistmysqladmin -uroot -p123456 status原创 2016-04-18 13:25:53 · 999 阅读 · 0 评论 -
联表查询和生成二维码的接口
联表查询 查询结果UNION不会有重复的,UNION ALL数据有重复SELECT * FROM shop_user_score_log_3 WHERE lender_id=117657UNIONSELECT * FROM shop_user_score_log_5 WHERE lender_id=117657ORDER BY id desc LIMIT 10;原创 2016-07-21 16:16:57 · 660 阅读 · 0 评论 -
mysql int(3)与int(11)的区别
mysql int(3)与int(11)的区别int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你插入到数据库里的是10 ,则实际插入为010 ,也就是在前面补充加了一个0如果int(3)和int(10)不加 zerofill,则它们没有什么区别.M不是用来限制int个数的。int(M)原创 2016-09-29 09:35:49 · 343 阅读 · 0 评论 -
mysql 性能优化方案 (转)
网 上有不少MySQL 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用 status信息对mysql进行具体的优化。mysql> show global status;转载 2016-11-16 17:31:56 · 317 阅读 · 0 评论 -
MySQL运行原理与基础架构
1.MySQL 基础 MySQL 是一个开放源代码的关系数据库管理系统。原开发者为瑞典的 MySQL AB 公司,最早是在 2001 年 MySQL3.23 进入到管理员的视野并在之后获得广泛的应用。 2008 年 MySQL 公司被 Sun 公司收购并发布了首个收购之后的版本 MySQL5.1,该版本引入分区、基于行复制以及 plugin API 。移除转载 2016-11-17 17:11:59 · 343 阅读 · 0 评论 -
mysql逻辑结构详解
前言 》 Mysql并非尽善尽美,但足够灵活,能适应高要求环境,如Web应用。》 Mysql在众多平台上运行良好,支持多种数据类型,但不支持对象类型(Mongodb支持)》 Mysql的存储引擎可以基于表建立,以满足对数据存储,性能,特征及其他特性的各种需要。 架构逻辑视图 每个虚线框为一层,总共三层。第一层,服务层(为客户端服务)转载 2016-11-18 09:44:45 · 588 阅读 · 0 评论 -
MySQL 请选择合适的列!
介绍 情况:如果你的表结构设计不良或你的索引设计不佳,那么请你优化你的表结构设计和给予合适的索引,这样你的查询性能就能提高几个数量级。——数据越大,索引的价值越能体现出来。 我们要提高性能,需要考虑的因素:1、设计架构2、设计索引3、评估查询性能 今天要讲的是表列的设计,暂不谈索引设计。我会在下一章讲索引设计。 选择数据类型转载 2016-11-18 13:08:54 · 316 阅读 · 0 评论 -
mysql or条件可以使用索引而避免全表
在某些情况下,or条件可以避免全表扫描的。1 .where 语句里面如果带有or条件, myisam表能用到索引, innodb不行。1)myisam表: CREATE TABLE IF NOT EXISTS `a` ( `id` int(1) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, `aNum` char转载 2016-11-18 14:13:11 · 324 阅读 · 0 评论 -
MYSQL中有关SUM字段按条件统计使用IF函数(case)问题
select sum(cost_price*IF(goods_count>1,goods_count,1)) as sum_money from goods where type=1 ;如何数量大于1的话,就用数量乘以商品的价格,否则就是默认商品数量是1.原创 2016-12-21 15:07:24 · 1668 阅读 · 0 评论 -
Mysql--序列1--聚簇索引&非聚簇索引
而MySQL作为一个开源的数据库,在各大互联网公司使用极为普遍。本系列将从Mysql开始,一步步展示关于存储设计的诸多策略。说到InnoDB和MyISAM的区别,很多人都会提到一个支持事务,一个不支持;一个是行锁,一个是表锁(这个其实不准确,后面会详细阐述)。但跟日常使用最密切相关的,更基本的,其实是另外一个关键区别:InnoDB是聚簇索引,MyISAM是非聚簇索引。如下图所示:转载 2016-12-22 09:32:27 · 815 阅读 · 0 评论 -
MySQL锁定状态查看命令
1 show processlist;2 show open tables;(查看当前有那些表是打开的)3 show status like '%lock%' (查看服务器状态)4 show variables like '%timeout%';(查看服务器配置参数)原创 2016-12-23 10:26:06 · 278 阅读 · 0 评论 -
MYSQL Too many connections错误的解决办法
wait_timeout:参数含义:服务器关闭非交互连接之前等待活动的秒数,一般设置为100秒即可。数据库默认为28800秒(8小时),那么客户端在连接到Mysql Server处理完相应的操作后,要等到28800秒以后才会释放内存,如果Mysql Server有大量的闲置连接,不仅会白白消耗内存,而如果连接一直累积而不断开,最终肯定会达到MysqlServer的连接数的上限,会报“ to转载 2017-01-03 17:28:11 · 444 阅读 · 0 评论 -
使用SQL命令查看MYSQL数据库大小
mysql> mysql> use information_schema ; /*切换到information_schema数据下*/ Database changed mysql> mysql> select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables; /*查询所转载 2017-01-03 17:38:53 · 277 阅读 · 0 评论 -
mysql 笔试题
Mysql设置自增长主键的初始值alter table test AUTO_INCREMENT = 200;//mysql 配置文件的目录/etc/my.cnf//mysql 导出sql文件sudo su sudo mysqldump -uroot -p ayibangcms admin > admin.sql;原创 2017-01-03 18:09:56 · 679 阅读 · 0 评论 -
Mysql--序列3--分库分表策略
分库分表是存储层设计中一个普遍而重大的问题,什么时候分?怎么分?分完之后引发的新问题,比如不能Join、分布式事务? 本篇将从最基本的策略出发,逐步深入讲解这里面涉及的一序列策略。分库-业务分拆 & 数据隔离分库的首先目的就是做“业务分拆“,关于业务分拆,在前面的序列文章“分布式系统--基本思想汇总“中已经有阐述。通过业务分拆,把一个大的复杂系统拆成多个业务子系统,之间通过RPC或转载 2016-12-21 17:03:45 · 459 阅读 · 0 评论 -
mysql主从同步原理
//主从同步实际上,你读的主库和从库都可以,但是写的肯定是进入到主库里,然后从库在读binlog,从库同步binlog文件是以二进制形式保存的主库执行 SQL 写Binglog 同步到从库执行什么叫同步,就是insert 或者update或者delete 都会操作主库,每执行一条语句,都会写入到binlog里,然后从库会读这个binlog,进行同步主库有个偏移量,每原创 2017-01-04 14:52:16 · 1007 阅读 · 2 评论 -
MySQL通过binlog来恢复数据
一、什么是binlog1、binlog基本定义:二进制日志,也成为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中;二进制日志的信息:文件位置:默认存放位置为数据库文件所在目录下文件的命名方式: 名称为hostname-bin.xxxxx (重启mysql一次将会自动生成一个新的binlog)2、配置binlog,在配置文件转载 2017-04-19 14:46:26 · 586 阅读 · 0 评论 -
MySQL查询某个字段属性值重复出现的次数
在某些时候,我们需要在MySQL中查询某个字段属性值重复的次数: select category , count(*) AS count from publication_has_category group by category order by count DESC 此查询语句返回的是publication_has_category 表中categor转载 2016-01-21 09:23:17 · 18997 阅读 · 0 评论 -
详解Mysql数据库恢复误删除数据
血的教训,事发经过就不详述了。直接上操作步骤及恢复思路(友情提示:数据库的任何操作都要提前做好备份),以下是Mysql数据后的恢复过程:1. 找到binlog恢复数据的前提是必须开启Mysql的binlog日志,如果binlog日志没开启,请忽略此篇文档。binlog日志是否开启可以查看Mysql配置文件。日志位置一般在/var/lib/mysql目录或者编译安装的date目录下。转载 2017-04-20 17:52:42 · 7858 阅读 · 0 评论 -
将线下sql导入到测试环境
1.允许rz 命令,将文件上传到当前目录下2. 运行命令:source /home/www/yindou_02/article.sql原创 2017-05-03 15:13:50 · 383 阅读 · 0 评论 -
MYSQL IF 和 IFNULL 函数 IF(expr1,expr2,expr3) IFNULL(expr1,expr2)
一、IF函数 表达式:IF(expr1,expr2,expr3) 满足条件expr1即条件expr1返回true 则expr2 否则就是expr3eg: 1. SELECT IF(1=1,2,3); 则输出2 2.SELECT IF(1=2,2,3);则输出3转载 2017-05-05 11:33:32 · 2451 阅读 · 0 评论 -
数据库悲观锁的使用解释
悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 使用场景举例:以MySQL转载 2016-11-15 18:05:36 · 423 阅读 · 0 评论 -
查询一天之内的年利率大于13%的投资人数
SELECT count(distinct(rights.lender_id)) as count FROM rights,loan WHERE loan.id= rights.loan_id and loan.rate=1300 and rights.dt>='2017-05-07 00:00:00' and rights.dt原创 2017-05-08 11:15:59 · 245 阅读 · 0 评论 -
SQL truncate 、delete与drop区别
相同点:1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点:1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger转载 2017-05-10 10:32:08 · 245 阅读 · 0 评论 -
mysql into outline 导出数据到文件 --where
//导出投资数据select * from activity where activity_id=62 INTO OUTFILE '/tmp/fifty_2017' //导出18服务器少量数据的sql mysqldump -uroot -p12345678 bankofnc_batch_aleve --where="id bankofn_aleve.sql原创 2017-05-31 09:56:37 · 773 阅读 · 0 评论 -
group by having
查询每门课都大于80分的同学的姓名:SELECT name FROM grade GROUP BY name HAVING MIN(score) > 80;查询平均分大于80的学生的姓名:select name, avg(score) as sc from grade g1 group by name having avg(score)>80 ;原创 2017-06-01 15:58:54 · 269 阅读 · 0 评论