我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

MySQL要怎么存储种类,mysql可以存什么

那些年我们操作的MySQL存储,这些你都会了吗

1. 准备工作

创新互联-专业网站定制、快速模板网站建设、高性价比巢湖网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式巢湖网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖巢湖地区。费用合理售后完善,十载实体公司更值得信赖。

在开始之前,请确保已经安装好了MySQL数据库并保证它能正常运行,而且需要安装好PyMySQL库。

2. 连接数据库

这里,首先尝试连接一下数据库。假设当前的MySQL运行在本地,用户名为root,密码为123456,运行端口为3306。这里利用PyMySQL先连接MySQL,然后创建一个新的数据库,名字叫作spiders,代码如下:

import pymysql

db = pymysql.connect(host='localhost',user='root', password='123456', port=3306)

cursor = db.cursor()

cursor.execute('SELECT VERSION()')

data = cursor.fetchone()

print('Database version:', data)

cursor.execute("CREATE DATABASE spiders DEFAULT CHARACTER SET utf8")

db.close()

运行结果如下:

Database version: ('5.6.22',)

这里通过PyMySQL的connect()方法声明一个MySQL连接对象db,此时需要传入MySQL运行的host(即IP)。由于MySQL在本地运行,所以传入的是localhost。如果MySQL在远程运行,则传入其公网IP地址。后续的参数user即用户名,password即密码,port即端口(默认为3306)。

连接成功后,需要再调用cursor()方法获得MySQL的操作游标,利用游标来执行SQL语句。这里我们执行了两句SQL,直接用execute()方法执行即可。第一句SQL用于获得MySQL的当前版本,然后调用fetchone()方法获得第一条数据,也就得到了版本号。第二句SQL执行创建数据库的操作,数据库名叫作spiders,默认编码为UTF-8。由于该语句不是查询语句,所以直接执行后就成功创建了数据库spiders。接着,再利用这个数据库进行后续的操作。

3. 创建表

一般来说,创建数据库的操作只需要执行一次就好了。当然,我们也可以手动创建数据库。以后,我们的操作都在spiders数据库上执行。

创建数据库后,在连接时需要额外指定一个参数db。

用mysql 如果包含有文字和图片,那么我要用哪种数据类型存储呢?还是分开,用TEXT和BLOB吗?

一般来说mysql里面还是不要存储图片,你可以把图片的url地址存储在mysql里面,这样mysql里面就只需要存储文本了

mysql有哪些存储引擎

(一)MyISAM

它不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。

每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:

.frm(存储表定义)

MYD(MYData,存储数据)

MYI(MYIndex,存储索引)

(二)InnoDB

InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

(三)MEMORY

memory使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是.frm。MEMORY类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。

默认情况下,memory数据表使用散列索引,利用这种索引进行“相等比较”非常快,但是对“范围比较”的速度就慢多了。因此,散列索引值适合使用在"="和"="的操作符中,不适合使用在""或""操作符中,也同样不适合用在order by字句里。如果确实要使用""或""或betwen操作符,可以使用btree索引来加快速度。

存储在MEMORY数据表里的数据行使用的是长度不变的格式,因此加快处理速度,这意味着不能使用BLOB和TEXT这样的长度可变的数据类型。VARCHAR是一种长度可变的类型,但因为它在MySQL内部当作长度固定不变的CHAR类型,所以可以使用。

四)MERGE

merge存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,MERGE表中并没有数据,对MERGE类型的表可以进行查询、更新、删除的操作,这些操作实际上是对内部的MyISAM表进行操作。对于对MERGE表进行的插入操作,是根据INSERT_METHOD子句定义的插入的表,可以有3个不同的值,first和last值使得插入操作被相应的作用在第一个或最后一个表上,不定义这个子句或者为NO,表示不能对这个MERGE表进行插入操作。可以对MERGE表进行drop操作,这个操作只是删除MERGE表的定义,对内部的表没有任何影响。MERGE在磁盘上保留2个以MERGE表名开头文件:.frm文件存储表的定义;.MRG文件包含组合表的信息,包括MERGE表由哪些表组成,插入数据时的依据。可以通过修改.MRG文件来修改MERGE表,但是修改后要通过flush table刷新。


名称栏目:MySQL要怎么存储种类,mysql可以存什么
标题URL:http://mswzjz.cn/article/hegidp.html

其他资讯