mysqlmysql中单列索引、联合索引、Join联表查询建立索引 和 EXPLAIN的分析使用

  2、创建联合索引,从坐到右分别为:userid、openId、name    2、####-------------- 多表联合查询update2019/03/13 ---------------####(8)在Join表的时候使用相同类型的例,并将其索引如果你的应用程序有很多JOIN查询,你应该确认两个表中Join的字段是被建过索引的。这样,MySQL内部会启动为你优化Join的SQL语句的机制。而且,这些被用来Join的字段,应该是相同的类型的。例如:如果你要把DECIMAL字段和一个INT字段Join在一起,MySQL就无法使用它们的索引。对于那些STRING类型,还需要有相同的字符集才行。(两个表的字符集有可能不一样)//在state中查找companySELECTcompany_nameFROMusersLEFTJOINcompaniesON(users.state=companies.state)WHEREusers.id=$user_id"//两个state字段应该是被建过索引的,而且应该...

【转】【MySQL】MySQL的双机互信实战

【转】https://www.cnblogs.com/mchina/archive/2013/03/15/2956017.htmlMySQL双机实战原理:利用ssh传输文件,通过公、私钥的共享,实现ssh登录不需要密码,从而实现文件的传输。...

MySQLMySQL主从库配置和主库宕机解决方案

1、转载:https://blog.csdn.net/zfl589778/article/details/51441719/2、效果:亲测有效,数据写入成功。3、主机宕机后,如果不是长时间宕机,且可手动重启,直接重启即可,【从】数据库数据会进行写入,无需重新配置my.cnf。【这里的主机宕机方案指的是:主机很长时间无法启动】4、原理:MySQL从库上有一个IO线程负责从主库取binlog写到本地,另外有一个SQL线程负责执行这些本地值日,实现命令重做4.1)如果发生宕机,则主和从都需要重复配置mysql-bin-0000X,changemaster,。。。语句,然后startslave;showslavestatus;5、步骤:一、准备工作系统:CentOS软件包:mysql-5.6.22.tar.gzmaster服务器:192.168.1.112slave服务器1:192.168.1.102slave服务器2:192.168.1.104二、修改master服务器配置vi/etc/my.cnf[mysqld]log-bin=mysql-bin#必选项,启用二进制日志,值为日志文件名前缀...

MySQL】局域网内:在一台电脑访问另一台电脑的mysql数据库

1.假设192.168.1.3为服务器2.首先在ip为192.168.1.103的机子上能够ping通运行->cmd>ping192.168.1.3检查是否能ping通3.把两台电脑的IP设置在同一个网段,如:192.168.1.2,192.168.1.3。。。。。子网:255.255.255.0网关:192.168.1.14.在MySQL服务器上增加新用户,增加新用户的方法:在服务器端Mysql>grantselect,delete,update,insertonzhaozhen.*to‘zhen’@’192.168.1.103’identifiedby‘123’;在192.168.1.103这台机子上可以通过用户名:zhen密码为123对数据库zhaozhen进行操作!//怎样删除增加的新用户的访问权限Mysql>Revokeselect,delete,update,insertonzhaozhen.*from’zhen’@’192.168.1.103...

【转载】Mysql主从复制、和MySQL集群(主主复制)

转载:https://www.cnblogs.com/phpstudy2015-6/p/6485819.html请同时参考和结合这篇文件进行处理:https://blog.csdn.net/envon123/article/details/76615059 #addByxzz2018/08/13#主库、从库均需要设置的设备idserver-id=1#主库、从库均需开启的二进制日志log-bin=mysql-bin#主库和从库的起始自增id和偏移量auto_increment_increment=1auto_increment_offset=1#主库无需同步复制的库binlog-ignore=mysqlbinlog-ignore=information_schemabinlog-ignore=performance_schema#主库主动复制的库,一般无需开启#binlog-do-db=aa#从库主动复制的库,一般在从库php.ini中开启#replicate-do-db=aa,bb#从库是否只读#read-only=1  阅读目录1、简介2、环境说明3、主...

Mysql】php执行脚本进行mysql数据库 备份和还原

一、mysql备份1、这里使用php脚本的形式进行mysql数据库的备份和还原,想看linux的sh版本的,有时间再贴。2、找到mysql的【mysqldump】执行程序,建议phpinfo3、使用linux的定时任务助手crontab,写入里面,采用curl定时访问php脚本文件 4、php脚本文件参考:采用TP3.2示例/***数据库备份代码*@param每月一次*@return*@authorxzz2018年7月27日下午2:40:41*/publicfunctionaotu_save_mysql_month(){//exec("/***/mysql-5.5/bin/mysqldump-u***-p******db_name>/www/***/111.sql");$filename='/***/save_mysql_'.date('Y-m').'.sql.gz';//保存文件.sql$db_user='root';$db_pwd='*****';$db_name='***';$host='localhost';$port='33306';//与端口无关$exec=...

【转】 mysql反引号的使用(防冲突)

 转载地址:http://blog.itechol.com/space.php?uid=33&do=blog&id=66811、mysql语句中反引号【`】作用:避免表明、字段名与mysql已存在的【保留字】冲突,引起不知名错误。2、所以我们建表和字段时候,特别需要注意,尽量使用全拼/下划线来设置字段和表名3、连接不同数据库查询,一定不要加【`】反引号,否则会被解析成单个表4、为了区分MYSQL的保留字与普通字符而引入的符号。举个例子:SELECT`select`FROM`test`WHEREselect='字段值'在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。 引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select='字段值' 不加反引号建的表不能包含MYSQL保留字,否则出错 5、mysql常见的保留字==============================================...

mysql学习笔记

-----------------初学mysql时整理,随时更新--------------/*数据操作*/--------------------增INSERT[INTO]表名[(字段列表)]VALUES(值列表)[,(值列表),...]--如果要插入的值列表包含所有字段并且顺序一致,则可以省略字段列表。--可同时插入多条数据记录!REPLACE与INSERT完全一样,可互换。INSERT[INTO]表名SET字段名=值[,字段名=值,...]--查SELECT字段列表FROM表名[其他子句]--可来自多个表的多个字段--其他子句可以不使用--字段列表可以用*代替,表示所有字段--删DELETEFROM表名[删除条件子句]没有条件子句,则会删除全部--改UPDATE表名SET字段名=新值[,字段名=新值][更新条件]/*字符集编码*/--------------------MySQL、数据库、表、字段均可设置编码--数据编码与客户端编码不需一致SHOWVARIABLESLIKE'character_set_%'--查看所有字符集编码项character_set_client客户端向服...
IT猿 IT猿·2020-03-25

关于MySQL的LIMIT 语法小优化!(这个很不错)

来自:http://yueliangdao0608.blog.51cto.com/397025/304996------------------------------------------------------------------------------今天有朋友问起此类语句的优化,我大致给他介绍了下从SQL角度做简单的优化,至于应用程序方面的考虑咱暂时不考虑。下面我来举一个简单的例子。考虑如下表结构:/*DDLInformationFor-t_girl.t_page_sample*/----------------------------------------------Table         CreateTable                      &n...

百万级数据库记录下的Mysql快速分页优化实例

来自:http://blog.csdn.net/zqtsx/article/details/8929625-----------------------------------------------------------------------------MySql性能到底能有多高?用了php半年多,真正如此深入的去思考这个问题还是从前天开始。有过痛苦有过绝望,到现在充满信心!MySql这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发。可是数据量到了10万,百万至千万,他的性能还能那么高吗?一点小小的失误,可能造成整个系统的改写,甚至更本系统无法正常运行!好了,不那么多废话了。用事实说话,看例子:数据表collect(id,title,info,vtype)就这4个字段,其中title用定长,info用text,id是逐渐,vtype是tinyint,vtype是索引。这是一个基本的新闻系统的简单模型。现在往里面填充数据,填充10万篇新闻。最后collect为10万条记录,数据库表占用硬盘1.6G。OK,看下面这条sq...

MySQL 百万级分页优化(这个不错)

来源:http://adchoices.sinaapp.com/topic/62/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB-mysql-%E7%99%BE%E4%B8%87%E7%BA%A7%E5%88%86%E9%A1%B5%E4%BC%98%E5%8C%96---------------------------------------------------------------------------------------------------------当mysql数据量很大时,分页的方法很重要,千万别拖累了服务器。一般刚开始学SQL的时候,会这样写SELECT*FROMtableORDERBYidLIMIT1000,10;但在数据达到百万级的时候,这样写会慢死SELECT*FROMtableORDERBYidLIMIT1000000,10;也许耗费几十秒网上很多优化的方法是这样的SELECT*FROMtableWHEREid>=(SELECTidFROMtableLIMIT1000000,1)LIMIT10;是的,速度提升到0.x秒...

Mysql数据库百万级记录查询分页优化

来源:http://www.lvtao.net/database/mysql_page_limit.html---------------------------------------------------------------------------很多的朋友在面试中会遇到这样的问题,也有很多的项目在运营一段时间后也会遇到MYSQL查询中变慢的一些瓶颈,今天这儿简单的介绍下我常用的几种查询分页的方法,我所知道的也无非就是索引、分表、子查询偏移,所以要是有什么不对或有更好的方法,欢迎大家留言讨论。效率分析关键词:explain+SQL语句一,最常见MYSQL最基本的分页方式limit:select*from`table`orderbyiddesclimit0,20在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。随着数据量的增加,页数会越来越多,在数据慢慢增长的过程中,可能就会出现limit10000,20这样的情况,limit10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里,如果是limit...

解决Mysql数据量大的时候 分页优化(使用limit)的问题

来源:http://www.wenlingnet.com/index.php/198/---------------------------------------------------------------------当一个表数据有几百万的数据时,分页的时候成了问题如select*fromtablelimit0,10这个没有问题当limit200000,10的时候数据读取就很慢,可以按照一下方法解决总数据有500万左右以下例子当时候select*fromwl_tagindexwherebyname=’f’orderbyidlimit300000,10执行时间是3.21s优化后:select*from(selectidfromwl_tagindexwherebyname='f'orderbyidlimit300000,10)aleftjoinwl_tagindexbona.id=b.id执行时间为0.11s速度明显提升这里需要说明的是我这里用到的字段是byname,id需要把这两个字段做复合索引,否则的话效果提升不明显具体参考:http://explaine...

Zend Studio 对mysql 的while循环 警告提示--解决

 while($data=mysql_fetch_assoc($result))结果提示了一个assignmentincondition警告,经过检查终于发现,原来是写法不严谨照成的,并不是错误。解决方法如下:while(($row=mysql_fetch_assoc($result))!=false) 详情解释:http://www.cnblogs.com/chrisv/archive/2011/09/05/2167179.html----------------------- 问题主要出在这一句while($row=mysql_fetch_array($query)){....}在zendstudio里会出现黄色的warning,提示说:assignmentincondition。出现这样的问题代码是可以继续正常执行的,但是写法不太严谨,因为在while/if的条件中,系统期望的是一个布尔类型的值,当表达式传递的结果非布尔值类型时,就会出现这样的警告。我们应该养成严谨的代码书写习惯,所以,这里的改进方法如下:while(($row=mysql_fetc...

mysql配置和管理(转载)

 (2012-08-0913:06:59)转载▼标签: mysql 配置 管理 分类: MySQL安装yum-yinstallmysql-server 启动服务servicemysqldstart 修改MySQL管理员的命令当第一次安装MySQL时,访问数据库服务器的用户只能是MySQL管理员,即root用户(注意该用户不同于Linux系统的root用户)。默认情况下,root用户初始化的密码为空,因此从本地客户端连接MySQL时,只需要键入命令mysql即可。显然这种状态是不安全的,因此应尽快修改MySQL管理员的密码。要修改root用户的密码,可先退出MySQL命令状态(在命令提示符“mysql>”后输入命令quit即可),然后使用下面格式的mysqladmin命令。mysqladmin-urootpassword密码字符串【例】将root用户密码修改为“kswTG23a”的命令为:mysqladmin-urootpasswordkswTG23a修改...
首页上一页...565566567568569下一页尾页