LinkNemo

  • Nemo

    Mysql执行查询的原理【转载】

    可以用一张网上找的图片来描述:从图中可以看出基本步骤为:1、客户端发送一条查询给服务器。2、服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。3、服务器端进行SQL解析,预处理,再由优化器生成对应的执行计划4、MySql根据优化器生成的执行计划,调用存储引擎的API执行查询。5、返回结果给客户端。MySQL客户端/服务器通信协议MySQL客户端和服务器之间的通信协议是“半双工”的,这意味着,在任何野时刻,要么是由服务器向客户端发送数据,要么是客户端向服务器发送数据,这两个动作不能同时执行。所以,我们无法也无须将也消息切成小块独立来发送。这种协议让MySQL通......
    2018/01/16 14:56:06发表 19赏阅 0点评
  • Nemo

    MySQL索引背后的数据结构及算法原理【转载】

    最近在研究索引的算法以及数据结构一类的东西。看完这篇文章后,收获颇多。另外推荐下CodingLabs这个博客,在看了这篇文章后,我陆陆续续浏览了上面的一些其他文章,干货不少,而且作者本身也非常牛逼~原文地址:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTr......
    2018/01/11 14:34:24发表 24赏阅 0点评
  • Nemo

    Mysql 基础架构分析

    MySQL从概念上可以分为四层。从上到下分别为:接入层、服务层、存储引擎层、系统文件层。接入层:不同语言的客户端通过mysql的协议与mysql服务器进行连接通信,接入层进行权限验证、连接池管理、线程管理等。服务层:包括sql解析器、sql优化器、数据缓冲、缓存等。存储引擎层:mysql中存储引擎是基于表的。系统文件层:保存数据、索引、日志等。贴个图:
    2017/12/25 16:56:57发表 33赏阅 0点评
  • Nemo

    MySQL字符集

    utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。utf8_general_ci校对速度快,但准确度稍差。utf8_unicode_ci准确度高,但校对速度稍慢。如果应用有德语、法语或者俄语,请一定使用utf8_unicode_ci。一般用utf8_general_ci就够了,到现在也没发现问题。。。1、对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。2、utf8_gener......
    2017/11/07 14:15:35发表 112赏阅 0点评
  • Nemo

    MySQL CHAR VARCHAR 字段长度

    参见https://dev.mysql.com/doc/refman/5.6/en/char.html以上是针对MySQL5.6版本,不保证之前的版本也有同样的行为。总结一下:建表时定义的CHAR(n)和VARCHAR(n)是指定该字段能储存的最大字符(而不是字节)。既然是字符,当然不同字符集会占用不同的存储空间,如果是字符集是latin1,1个字符对应1个字节,如果字符集是utf8,则一个字符对应3个字节,以此类推。CHAR类型的字段可指定长度为0-255。VARCHAR类型的字段可指定长度为0-65535。整个表的CHAR/VARCHAR字段长度之和不能超过65535字节。
    2017/11/07 14:12:00发表 86赏阅 0点评
  • CODY

    mysql 之 in 和exists区别

    问题:前段时间,一朋友面试的时候,问到sql优化时,说sql查询效率exists大于in,果真如此?准备新建users/*用户表*/droptableifexistsusers;createtableusers(idintprimarykeyauto_increment,namevarchar(20));insertintousers(name)values('A');insertintousers(name)values('B');insertintousers(name)values('C');insertintousers(name)values('D');insertintousers......
    2017/09/21 18:08:18发表 312赏阅 1点评
  • Nemo

    The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

    使用jdbc的时候遇到一个异常:配置的连接地址为:jdbc:mysql://localhost:3306/news?useUnicode=true&characterEncoding=UTF-8异常信息:Loadingclass`com.mysql.jdbc.Driver'.Thisisdeprecated.Thenewdriverclassis`com.mysql.cj.jdbc.Driver'.ThedriverisautomaticallyregisteredviatheSPIandmanualloadingofthedriverclassisgenerallyunnecessa......
    2017/09/19 09:59:23发表 323赏阅 0点评
  • Nemo

    MySQL INSERT插入条件判断:如果不存在则插入

    普通的INSERTINTO插入:INSERT INTO card(cardno, cardnum) VALUES('1111', '100');INSERT INTO card(cardno, cardnum) VALUES('2222', '200');...对于普通的INSERT插入,如果想要保证不插入重复记录,我们只有对某个字段创建唯一约束实现(比如:cardno卡号不能重复);那有没有不创建唯一约束,仅通过INSERTINTO一条语句实现的方案呢?答案:有的,INSERTINTOIFEX......
    2017/09/12 16:00:38发表 248赏阅 0点评
  • Nemo

    MAC下重置mysql密码

    是的,我忘记了mysql的密码。。。关闭mysql服务器,也可以在系统偏好里有个MySQL里关闭。sudo/usr/local/mysql/support-files/mysql.serverstop进入目录cd/usr/local/mysql/bin获取权限sudosu重启服务器./mysqld_safe--skip-grant-tables&重开个终端,配置短命令:aliasmysql=/usr/local/mysql/bin/mysql输入mysql进入mysql命令模式进入mysql数据库usemysql大概就是获取权限,要不他不让你改。flushprivileges;完成修改......
    2017/09/11 22:09:27发表 207赏阅 0点评
  • Nemo

    MySQL 自动备份 Shell 脚本

    #!/bin/bash#要备份的数据库名,多个数据库用空格分开databases=(db_friend)#备份文件要保存的目录basepath='/home/nemo/mysqlbackup/sql/'if[!-d"$basepath"];thenmkdir-p"$basepath"fi#循环databases数组fordbin${databases[*]}do#备份数据库生成SQL文件mysqldump-uUSER-pPASSWORD--database$db>$basepath$db-$(date+%Y%m%d).sql#将生成的SQL文件压缩tarzPcf$basepath$db-......
    2017/06/15 18:44:49发表 252赏阅 1点评
  • 随遇而安

    高可用架构-- MySQL主从复制的配置

     视频资源:http://www.roncoo.com/course/view/3117ffd4c74b4a51a998f9276740dcfb环境操作系统:CentOS-6.6-x86_64-bin-DVD1.isoMySQL版本:mysql-5.6.26.tar.gz主节点IP:192.168.1.205    主机名:edu-mysql-01从节点IP:192.168.1.206    主机名:edu-mysql-02主机配置:4核CPU、4G内存 依赖课程《高可用架构篇--第13节--M......
    2016/12/09 11:27:41发表 234赏阅 0点评
  • Nemo

    Mysql 查询去除重复字段

    selectt1.*,count(distinctname)fromtablet1leftjointable2t2ont2.t1_id=t1.idgroupbynameorderbyt2.order_columlimit0,1000
    2016/12/02 14:52:35发表 239赏阅 0点评
  • Nemo

    Mysql 5.7 this is incompatible with sql_mode=only_full_group_by

    问题:   whichisnotfunctionallydependentoncolumnsinGROUPBYclause;thisisincompatiblewithsql_mode=only_full_group_by解决:登录Mysql,输入mysql>setglobalsql_mode='';
    2016/12/02 13:33:19发表 265赏阅 0点评
  • Nemo

    mysql添加索引

    1.添加PRIMARYKEY(主键索引) mysql>ALTERTABLE`table_name`ADDPRIMARYKEY(`column`) 2.添加UNIQUE(唯一索引) mysql>ALTERTABLE`table_name`ADDUNIQUE( `column` )  3.添加INDEX(普通索引) mysql>ALTERTABLE`table_name`ADDINDEXindex_name(`column`)  4.添加FULLTEXT(全文索引) my......
    2016/08/03 09:23:03发表 293赏阅 0点评
  • Nemo

    MySQL5.7绿色版本安装配置问题

    今天在新机器上部署mysql准备做新构架的测试用.mysql的版本是官网最新的解压安装版本.安装配置过程中出现这么一个问题:===========================================D:\ProgramFiles\MySQL\MySQLServer5.7\bin>netstartmysqlMySQL服务正在启动..MySQL服务无法启动。服务没有报告任何错误。请键入NETHELPMSG3534以获得更多的帮助。===========================================尝试了一些网上的一些解决方案,最终这个问题还是没能得到解决.重装了......
    2016/03/17 19:05:02发表 338赏阅 0点评

最新点击

热门人物

热门标签

回到顶部