mysql可以配合lucene做搜索引擎,还不够大可以用cluster一般你用like没问题,索引要做得好。
如果大家有异议,可以在后面补充。我会随时更新的。
现在大概列出如下:(望各位补充)
1数据库的设计
尽量把数据库设计的更小的占磁盘空间
1)尽可能使用更小的整数类型(mediumint就比int更合适)
2)尽可能的定义字段为not null,除非这个字段需要null(这个规则只适合字段为KEY的情形)
3)如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格式比如char(CHAR 总是比VARCHR快)
4)表的主索引应该尽可能的短这样的话每条纪录都有名字标志且更高效
5)只创建确实需要的索引。索引有利于检索记录,但是不利于快速保存记录。如果总是要在表的组合字段上做搜索,那么就在这些字段上创建索引。索引的第一部分必须是最常使用的字段如果总是需要用到很多字段,首先就应该多复制这些字段,使索引更好的压缩。
(这条只适合MYISAM引擎的表,对于INNODB则在保存记录的时候关系不大,因为INNODB是以事务为基础的,如果想快速保存记录的话,特别是大批量的导入记录的时候)
6)所有数据都得在保存到数据库前进行处理。
7)所有字段都得有默认值。
8)在某些情况下,把一个频繁扫描的表分成两个速度会快好多。在对动态格式表扫描以取得相关记录时,它可能使用更小的静态格式表的情况下更是如此。
(具体的表现为:MYISAM表的MERGE类型,以及MYISAM和INNODB通用的分区,详情见手册)
9)不会用到外键约束的地方尽量不要使用外键。
2系统的用途
1)及时的关闭对MYSQL的连接。
2)explain 复杂的SQL语句。(这样能确定你的SELECT 语句怎么优化最佳)
3)如果两个关联表要做比较话,做比较的字段必须类型和长度都一致(在数据庞大的时候建立INDEX)
4)LIMIT语句尽量要跟order by或者 distinct这样可以避免做一次full table scan
5)如果想要清空表的所有纪录,建议用truncate table tablename而不是delete from tablename
不过有一个问题,truncate 不会在事务处理中回滚。因为她要调用create table 语句。
(Truncate Table 语句先删除表然后再重建,这个是属于文件界别的,所以自然快N多)
实测例子:
song2为INNODB表。
mysql> select count(1) from song2;
+----------+
| count(1) |
+----------+
| 500000 |
+----------+
1 row in set (091 sec)
mysql> delete from song2;
Query OK, 500000 rows affected (1570 sec)
mysql> truncate table song2;
Query OK, 502238 rows affected (017 sec)
mysql>
{
这一点手册上有详细解释:
1329 TRUNCATE语法
TRUNCATE [TABLE] tbl_name
TRUNCATE TABLE用于完全清空一个表。从逻辑上说,该语句与用于删除所有行的DELETE语句等同,但是在有些情况下,两者在使用上有所不同。
对于InnoDB表,如果有需要引用表的外键限制,则TRUNCATE TABLE被映射到DELETE上;否则使用快速删减(取消和重新创建表)。使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器,设置时不考虑是否有外键限制。
对于其它存储引擎,在MySQL 51中,TRUNCATE TABLE与DELETE FROM有以下几处不同:
· 删减 *** 作会取消并重新创建表,这比一行一行的删除行要快很多。
· 删减 *** 作不能保证对事务是安全的;在进行事务处理和表锁定的过程中尝试进行删减,会发生错误。
· 被删除的行的数目没有被返回。
· 只要表定义文件tbl_namefrm是合法的,则可以使用TRUNCATE TABLE把表重新创建为一个空表,即使数据或索引文件已经被破坏。
· 表管理程序不记得最后被使用的AUTO_INCREMENT值,但是会从头开始计数。即使对于MyISAM和InnoDB也是如此。MyISAM和InnoDB通常不再次使用序列值。
· 当被用于带分区的表时,TRUNCATE TABLE会保留分区;即,数据和索引文件被取消并重新创建,同时分区定义(par)文件不受影响。
TRUNCATE TABLE是在MySQL中采用的一个Oracle SQL扩展。
}
6)能使用STORE PROCEDURE 或者 USER FUNCTION的时候(ROUTINE总是减少了服务器端的开销)
7)在一条insert语句中采用多重纪录插入格式而且使用load data infile来导入大量数据,这比单纯的indert快好多(在MYSQL中具体表现为:INSERT INTO TABLEQ VALUES (),(),();)
(还有就是在MYISAM表中插入大量记录的时候先禁用到KEYS后面再建立KEYS,具体表现语句:
ALTER TABLE TABLE1 DISABLE KEYS;ALTER TABLE TABLE1 ENABLE KEYS;
而对于INNNODB 表在插入前先 set autocommit=0;完了后:set autocommit=1;这样效率比较高。)
8)经常OPTIMIZE TABLE 来整理碎片
9)还有就是date 类型的数据如果频繁要做比较的话尽量保存在unsigned int 类型比较快。
3系统的瓶颈
1)磁盘搜索
并行搜索,把数据分开存放到多个磁盘中,这样能加快搜索时间
2)磁盘读写(IO)
可以从多个媒介中并行的读取数据。
3)CPU周期
数据存放在主内存中这样就得增加CPU的个数来处理这些数据。
4)内存带宽
当CPU要将更多的数据存放到CPU的缓存中来的话,内存的带宽就成了瓶颈
====
Another article more about tuning details:
>Representatives of the institute
I would like to invite you to a concert at the weekend
He was ill for a week, in that week, he hardly eaten anything
Christmas shop to cheaper
Would you like to leave a message
This is a list of nanjing to express
Are you free today My mother went shopping!
The countries all university to teach English
My brother wants to learn physics with you
This young man is tall and strong, he must be an athlete
视窗2000
视窗是有意的替代Windows NT目前尚未收到
只有温的支持。是基于窗口新台币,它继承一些它的司机
支持的问题。原来也是用来替代Windows 98,但窗口
我已经这样做了,从窗口新台币
视窗98已经延期到视窗XP
开关
一般来说,一个开关是一种装置,它变成当前断断续续的 在网络世界,
它的数据连接,打破了一个开关是一个网络集线器的装置,
相反,把包上共享的骨干的公车,创造了一个直接连接到目的港。
Fileserver
一个计算机出口一些磁盘驱动器在它的网络连接
到其他电脑使用这些磁盘,如果他们的当地的disksFileserver
通常有高带宽、快速I / O的网络接口,许非常多,艺术设计多字节的存储。
主要的实验室fileservers是中心,坎贝尔,上海、园林、希斯罗机场,主持人、菠菜如何破解网站登陆密码?
1个回答922阅读
用户5677867680324
2019-09-21
关注
破解一般不是直接猜密码,而是用其他手段。
密码完成的工作一般分
加密
和
鉴权
两种,QQ密码属于鉴权,即识别用户是否有使用此QQ号码的权限。
这个鉴权过程简单来说,是把输入的用户名和密码传给服务器,由服务器比对输入的密码和服务器存储的密码是否一致。当然,传输过程不会是明文传输,这种场景下经常用各种
不可逆加密算法
来确保密码安全。
针对以上过程的攻击(也就是破解)无非有两种思路,1通过某种方式取得密码。2篡改服务器上保存的信息。暂且不讨论第二种。
常见的**密码的手段有:
1在用户电脑中植入病毒,获取密码,比如监听用户输入的字符、窃取包含用户名密码的文档等等,并发给攻击者。
2钓鱼,简单来说就是攻击者制作一个和登录页面看上去差不多的软件或网页,并让你相信这是正确的登录页,然后在上面输入用户名密码试图登录。这时,输入的信息就被发给了攻击者。
ps:总的来说,密码破解这个说法很宽泛,我认为取得密码或者绕过密码达到目的都算破解。任何安全机制都是相对的,没有绝对安全的加密/鉴权系统。如果本身验证机制漏洞繁多,导致密码容易被绕过,就谈不上破不破解,
pps:在下认为,题目中的那个案例,那明明就是个骗子……没有登录记录,而且那登录视频我认为是假的,浏览网页需要把网页下载(缓存)到本地,到了本地网页上面的内容想怎么改就怎么改。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)