深入mysql基础知识的详解

 更新时间:2013年06月06日 10:02:32   作者:  
本篇文章是对mysql基础知识进行了详细的分析介绍,需要的朋友参考下

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

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

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

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

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

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

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

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;

2.更改存储引擎
ALTER TABLE a ENGINE=InnoDB;

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

4.获取表信息
SHOW TABLE STATUS LIKE '%XXX%';   // 获取表名符合LIKE的表信息。
SHOW TABLE STATUS FROM `数据库名`;   // 获取该数据库下所有表的信息

5.清空二进制日志
RESET MASTER;

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

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

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中的int(1)和int(11)

    详细深入聊一聊Mysql中的int(1)和int(11)

    mysql数据库作为当前常用的关系型数据库,肯定会遇到设计表的需求,下面对设计表时int类型的设置进行分析,下面这篇文章主要给大家介绍了关于Mysql中int(1)和int(11)的相关资料,需要的朋友可以参考下
    2022-08-08
  • 如何彻底删除mysql服务(清理注册表)详解

    如何彻底删除mysql服务(清理注册表)详解

    这篇文章主要给大家介绍了关于如何彻底删除mysql服务(清理注册表)的相关资料,文中通过图文介绍的非常详细,对大家的学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 在idea中如何操作MySQL数据库

    在idea中如何操作MySQL数据库

    这篇文章主要介绍了在idea中如何操作MySQL数据库问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • MySQL索引的5种应用

    MySQL索引的5种应用

    本文主要介绍了MySQL索引的5种应用,包含聚集索引,唯一索引,非唯一(普通)索引,全文索引,组合索引等,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • mysql实现merge into问题

    mysql实现merge into问题

    文章介绍了在数据库操作中,如何使用`REPLACE INTO`和`INSERT INTO ON DUPLICATE KEY UPDATE`语句进行数据更新和插入操作,如果不想创建唯一性索引,可以通过存储过程实现,文章通过实验和验证,展示了这两种方法的实际效果
    2024-12-12
  • MySql Installer 8.0.18可视化安装教程图文详解

    MySql Installer 8.0.18可视化安装教程图文详解

    这篇文章主要介绍了MySql Installer 8.0.18可视化安装教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • MySQL模糊查询用法大全(正则、通配符、内置函数)

    MySQL模糊查询用法大全(正则、通配符、内置函数)

    这篇文章主要介绍了MySQL模糊查询用法大全(正则、通配符、内置函数),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • mysql事务隔离级别详情

    mysql事务隔离级别详情

    这篇文章主要介绍了mysql事务隔离级别,文章围绕mysql事务隔离的相关资料详细展开文章重点,需要的小伙伴可以参考一下,希望对你有所帮助
    2021-10-10
  • MySQL中RANK()函数的介绍和用法

    MySQL中RANK()函数的介绍和用法

    这篇文章主要介绍了MySQL中RANK()的介绍和用法,通过RANK()函数,我们可以方便地为查询结果进行排序并为每个行分配排名,本文介绍了RANK()函数的概念和使用方法,并通过示例和输出结果向读者展示了具体的操作步骤和效果,感兴趣的朋友一起看看吧
    2023-07-07
  • MySQL性能优化 出题业务SQL优化

    MySQL性能优化 出题业务SQL优化

    根据用户的作答结果出练习卷,题目的优先级为:未做过的题目>只做错的题目>做错又做对的题目>只做对的题目。
    2010-08-08

最新评论