MYSQL教程深入mysql基础知识的详解

MYSQL教程深入mysql基础知识的详解,第1张

概述介绍《MYSQL教程深入mysql基础知识详解》开发教程,希望对您有用。

《MysqL教程深入MysqL基础知识的详解》要点:
本文介绍了MysqL教程深入MysqL基础知识的详解,希望对您有用。如果有疑问,可以联系我们。

MysqL实例1.每个客户端连接都会从服务器进程中分到一个属于它的线程.而该连接的相应查询都都会通过该线程处理.

MysqL实例2.服务器会缓存线程.因此并不会为每个新连接创建或者销毁线程.

MysqL实例3.当发起对MysqL服务器的连接时,服务器会对 username,host,password进行验证.而一旦连接上,服务器就会检测其权限.

MysqL实例4.MySQL查询缓存只会保存 SELECT 语句和相应的结果.在解析查询之前会询问查询缓存,如果查询缓存中能找到相应的结果就直接返回结果.

MysqL实例5.MysqL的 data 文件夹下会根据每个数据库建立一个相应名称的文件夹.而每一张表对应的有三个不同后缀的文件:.frm,.MYD,.MYI.其中 .frm 后缀的文件用来存储表的定义..MYD(MysqL data)存储的是数据,而.MYI(MysqL index)存储的是索引.

MysqL实例6.关于IP的存储类型选择.别再使用 varchar(15) 了,应该使用 INT UNSIGNED.而且最好是使用PHP的内置函数ip2long()和 long2ip() 来处理,而不是使用 MysqL 的函数 INET_ATON() 和 INET_NTOA().尽可能地将计算和转换之类的东西交给程序来完成.存储为 INT 不仅节省了空间,而且利于查询.比如我想要查询出某个IP段的所有IP,varchar 是没办法进行的.

MysqL实例7. B+Tree 索引保存数据的顺序和建表时的字段顺序一致.InnoDB会自动在内存中为一些被频繁访问的索引值建立内存索引以加快速度.

MysqL实例8.以下查询会引起索引失效:

代码如下:
SELECT name FROM user WHERE ID+1=4;    // MysqL不会从计算中去分析出ID是有索引的
SELECT name FROM user WHERE TO_DAYS(birth) > 20;    // MysqL索引的是birth本身,而不是TO_DAYS()转化之后的数据

1.复制表结构
CREATE table b liKE a;

MysqL实例2.更改存储引擎
ALTER table a ENGINE=InnoDB;

MysqL实例3.复制表数据
INSERT INTO b SELECT * FROM a;

MysqL实例4.获取表信息
SHOW table STATUS liKE '%XXX%';   // 获取表名符合liKE的表信息.
SHOW table STATUS FROM `数据库名`;   // 获取该数据库下所有表的信息

MysqL实例5.清空二进制日志
reset MASTER;

MysqL实例6.返回某字段前X个字符
SELECT left(name,3) AS pre_name FROM user;

MysqL实例7.为某字段添加前缀索引
ALERT table xxx ADD KEY (name(3));

MysqL实例8.避免读取不必要的行,使用索引覆盖查询
SELECT * FROM JOIN (SELECT prod_ID FROM products WHERE actor='SEAN CARREY' AND
Title liKE '%APolLO%') AS t ON (t.prod_ID=products.prod_ID); // 其中actor有索引

总结

以上是内存溢出为你收集整理的MYSQL教程深入mysql基础知识的详解全部内容,希望文章能够帮你解决MYSQL教程深入mysql基础知识的详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1161453.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存