一个键盘码代码,两只黄鹂名翠柳

MySQL索引优化(一)

主键优化主键可以是表的一个列或者是多个列,有一个关联的索引。利用主键查询是非常快的。主键查询对于not null的优化是非常棒的,因为主键不允许有null值。在InnoDB存储引擎中,一张表的数据基于主键存储。如果你的表非常大而且特重要,但却没有一个有明显特征的列或者列的集合作为主键。你需要单独创建一个自增列(auto-increment )作为主键。那些唯一键可以作为join表时的外键使用。外键优化如果一张表有一些字段,你常用来组合查询一些数据,这时候应该将那些低频的字段单独得地拆分为一张表,并在主表中使用外键与之关联。这样,每张小表会拥有自己的主键,可以快速的查询它自己的数据,也可以通过join操作来查询其他需要的字段。查询的IO和耗费的内存,最终取决于数据是如何分布的,因为在磁盘中相关的字段是被打包在一起存储的。通常情况下,查询是尽可 查看全文

MySQL索引优化(二)—— B树索引和hash索引的对比

B-Tree索引的特征B-Tree索引可以使用比较表达式,包括 =, >, >=, <, <=,  BETWEEN等表达式,还可以使用 like表达式(1、不能以 % 等通配符开始,2、而且必须是常量字符串)。 下面的两条sql会使用索引SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; SELECT * FROM tbl_name WHERE key_col LIKE 'Pat%_ck%';下列的sql不会使用索引-- 以 查看全文

MySQL索引优化(三)—— 索引的合并

索引合并查询是指将多个范围扫描合查询的结果合并为一个结果集。索引合并这种访问方式适用于单表查询,不适用与多表查询。在查询的时候会产生并集、交集或者是交并集的操作。索引合并查询的例子SELECT * FROM tbl_name WHERE key1 = 10 OR key2 = 20; SELECT * FROM tbl_name   WHERE (key1 = 10 OR key2 = 20) AND non_key = 30; SELECT * FROM  查看全文

MySQL索引优化(四)—— 范围查询优化

范围查询可以通过一个索引的单个或者多个索引值的区间来检索数据记录,也适用于符合索引。下面就区间是怎么样从where子句中被提取出来的作出详细解释。使用单值索引的范围查询对于单值索引来说索引值的区间能够很好地通过where子句中的相应条件很好的表示出来。单值索引的范围查询被定义为:对于BTree索引和Hash索引来讲,包含索引键和 =, <=>, IN(), IS NULL 或者 IS NOT NULL 这些操作符的比较此外对于BTree索引来讲还包含索引键和 >, <, >=, <=, BETWEEN, !=, 或<>, 或 LIKE不以通配符开头的 这些操作符的比较对于所有的索引类型,多个索引条件用 or 或者 and 组合的单个范围查询下面这些是范围查询SELECT * FROM 查看全文

MySQL索引优化(五)—— WHERE语句优化

平常我们可能会牺牲可读性来使计算变得更快而重写SQL。其实MySQL会做类似的优化操作,我们大可以避免这个工作,尽量在写SQL的时候更关注可维护性和可读性。MySQL通常会做对WHERE语句做下述的优化:1、移除不必要的括号   ((a AND b) AND c OR (((a AND b) AND (c AND d)))) -> (a AND b AND c) OR (a AND b AND c AND d)2、常量合并(a<b AND b= 查看全文

mysql 重启过程出现MySQL server PID file could not be found![失败

service mysql restartMySQL server PID file could not be found![失败]Starting MySQL...The server quit without updating PID file (/usr/local/mysql/data/snsgou.pid).[失败]1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!2、可能进程里已经存在mysql进程解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kil 查看全文

修改MySQL提示符

在登录时,输入mysql -u root -p后,再添加 --prompt h,h指服务器的名称,在登录后,修改提示符,输入prompt mysql>发现提示符又被修改为mysql>意思是以用户名@服务器地址 以及数据库名字的提示符显示->表示期待一个分号结尾sql语句阅读更多 查看全文

《windows无法启动MySQL服务 错误1067:进程意外终止》

《windows无法启动MySQL服务 错误1067:进程意外终止》记一次mysql启动错误解决方案,导致错误的原因不止一种,那么解决方案也不止一种,下面是本人在开发工程中遇到的错误以及解决方案:1.错误提示:windows无法启动MySQL服务 错误1067:进程意外终止2.查看mysql错误日志:路径C:ProgramDataMySQLMySQL Server 5.5data下的本机用户名的err文件提示如下错误 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist3.想象发生错误之前的操作,安装mysql时,设置密码root,然后想置为空,所以执行了操作user表,修改密码为 查看全文
加载更多
其它 ( 244 )
python ( 199 )
java ( 175 )
算法 ( 136 )
linux ( 112 )
mysql ( 82 )
js ( 82 )
android ( 56 )
c/c++ ( 47 )
信息技术 ( 41 )
php ( 41 )
nginx ( 23 )
css ( 23 )
shell ( 22 )
教育 ( 21 )
操作系统 ( 19 )
html ( 19 )
设计模式 ( 18 )
node ( 14 )
tcp/udp ( 11 )
hive ( 11 )
es6 ( 10 )
es ( 10 )
编码 ( 9 )
redis ( 8 )
unix ( 5 )
SpringBoot ( 5 )
数据库 ( 5 )
hadhoop ( 4 )